Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonのexcept句によってスローされた例外をどのように処理しますか?


except句自体のコードで例外が発生するシナリオがあります。与えられたコードでは、except句によって発生した例外を次のように処理できます。

import sys
try:
a = john
except:
try:
4/0
except:
print sys.exc_info()

出力 次の出力が得られます

"C:/Users/TutorialsPoint1/~.py"
(<type 'exceptions.ZeroDivisionError'>, ZeroDivisionError('integer
division or modulo by zero',), <traceback object at 0x0000000002BD4B88>)

  1. リスト内包表記でPython例外をキャッチする方法は?

    Pythonには例外を処理または無視できる組み込み関数がないため、リスト内包には1つ以上の式が含まれているため、リスト内包のすべての例外を処理することはできません。ステートメントのみが例外をキャッチ/無視/処理できます。 例外が発生しやすい部分式の評価を関数に委任することは、実行可能な回避策の1つです。その他は、例外を発生させる可能性のある値のチェックです。 この問題を処理する方法は、次のコードを使用することです。 例 foo = (5,7,1,0,9) def bar(self): try: return [1/i for i in foo] except ZeroDivisionErro

  2. Python関数が例外をスローすることをどのようにテストしますか?

    関数が予期された例外をスローしない場合にのみ失敗する単体テストを記述します。 Python関数が例外をスローするかどうかもテストします。 たとえば、Pythonの型安全性をテストするためにPythonシェルに貼り付けるサンプルコードを参照してください。 例 import unittest class MyTestCase(unittest.TestCase):    def test_1_cannot_add_int_and_str(self):       with self.assertRaises(TypeError):