Pythonエラー処理方法

異常なキャプチャと処理

エラーとは

つまり、まだ実行されておらず、文法を分析したところ、現時点ではエラーである文法に問題があることがわかりました。

例外とは

要するに:コードが書かれた後、明らかな文法上のエラーはありません(現時点では、エディターはエラーがあることも、文法の解析中にエラーがあることも知りません)が、実行されるとエラーが発生します。これは、現時点では例外と呼ばれます。 。

警告とは

import warnings

def fxn():
 warnings.warn("deprecated", DeprecationWarning)

例外への対処方法

例外処理フォームは次のとおりです。

try:
 何か変わったことが起こるかもしれません
発生する可能性のある例外を除く:
 例外の後にすべきこと
発生する可能性のある例外を除いて2:
 例外が発生した後に行うこと2finally:
 最後にすべきこと

たとえば、次のコード:

try:print(10/0)
except ZeroDivisionError:print("除数を0にすることはできません")

この時点で再度実行します。例外はありません。

通常の開発では、例外によるプログラムのクラッシュを回避するために、事前定義されたクリーンアップ操作も使用されます。たとえば、IO操作を実行する場合は、次を使用できます。

withopen("myfile.txt")as f:for line in f:print(line, end="")

このように、操作中に例外が発生すると、プログラムは自動的にファイルを閉じて、プログラム全体がクラッシュしないようにします。

カスタム例外と例外スロー

pythonには多くの組み込みの例外クラスが用意されていますが、通常の開発では、特定のビジネスに対して、例外をカスタマイズする必要がある場合があります。現時点ではどうすればよいですか。

例外のカスタマイズは、Exceptionクラスをカスタム継承することで実現できます。

classMyException(Exception):
 def __init__(self, parameter):
 err ='不正なエントリ{0}、分母を0にすることはできません'.format(parameter)
 Exception.__init__(self, err)
 self.parameter = parameter

コードで特別なビジネス状況に遭遇し、呼び出し元にカスタム例外をスローする必要がある場合は、raiseキーワードを使用できます。

from chapter12.my_exception import MyException

def my_fun(x):if x ==0:
 raise MyException(x)return12/x

print(my_fun(-12))

例外をキャッチした後、例外を直接スローすることもできます。この場合、raiseキーワードを直接使用できます。

def my_func():try:print(10/0)
 except ZeroDivisionError:print("除数を0にすることはできません")
 # キャッチされた例外をここに直接スローします
 raise

単体テスト

ユニットテストとは

ユニットテストのメリットと「デメリット」

pythonでユニットテストを書く方法

1、 新しいpythonファイルを作成し、特定のビジネスコードを記述します

classMyTest():
  def my_add(self, a, b):return a + b

**2、 クラス名を右クリックして、[移動] ==》テストを選択するか、直接ctrl + shift + t **を選択します

3、 対応するモジュール名とテストクラス名を入力し、[OK]をクリックすると、pycharmがテストモジュールとクラスを自動的に作成するのに役立ちます

4、 テストコードを記述し、ユニットテストを実行します

import unittest
from unittest import TestCase
from test import MyTest

classTestMyTest(TestCase):
def test_add(self):
 s=MyTest()
 self.assertEqual(s.my_add(1,5),6)if __name__ =="__main__":
unittest.main()

上記は、Pythonエラー処理メソッドの詳細な内容です。Pythonエラー処理の詳細については、ZaLou.Cnの他の関連記事に注意してください。

Recommended Posts

Pythonエラー処理方法
Pythonエラー処理は詳細な説明を主張します
Pythonの例外処理
Pythonマジックメソッドのトピック
Pythonオブジェクト指向の魔法の方法
Python3.7デバッグサンプルメソッド
Python関数-辞書get()メソッド
Pythonは関数メソッドを定義します
pythonアライメントエラーの解決策
PythonTCPパケットインジェクション方式
Python描画リンググラフ法
情報メソッドを除くPython追跡
Pythonは勾配降下法を実装しています
Pythonの一般的な例外処理メカニズム
Pythonの右揃えの例の方法
パラメータを渡すPythonメソッド
Python算術シーケンス計算方法
pythonフォントを増やす方法の手順
Pythonの対数法の要約
Pythonは最も急な降下方法を実装します
pythonを実行するメソッドを終了します
UbuntuにPythonモジュールをインストールするときにエラーが発生しました
Pythonファイル処理の実用ガイド
pythonにdjangoモジュールをインストールする方法
pythonは勾配メソッドを実装しますpython最速の降下メソッド
pythonインスタンス化オブジェクトの特定のメソッド
不可欠な例を見つけるためのPythonRombergメソッド
pythonからsqlを読み取る方法の例
音楽ファイルを開くためのPythonのサンプルメソッド
pythonインポートライブラリの特定の方法
Python置換ピップソースメソッドプロセス分析