pythonカスタム異常とイニシアチブショット異常の操作


前言
時にはpythonが持っています。javaのように、pythonもカスタマイズできます。また、手動で投げられます。注意、カスタム異常は自分で投げるしかないです。pythonインタプリタはユーザーのカスタマイズの異常が何かを知らない。
ライセ語
自発的に異常を投げ出す。
書式:
自発的に異常終了プログラムを投げます。
ライセ異常名称(‘異常記述’)
ライセRuntimeError('testErr')

この異常を自発的に投げて説明します。
カスタム異常
pythonの異常は二つに分けられます。
1、内装異常は、python自身が定義した異常です。
2、足りなくて、ユーザーのカスタマイズが異常で、
まず、pythonの異常継承樹を見てください。

pythonの異常に大きな基があることが見られます。そして引き継ぐのはExceptionです。だから、私たちのカスタムクラスもExceptionを引き継がなければなりません。

#         
class FError(Exception):
  pass
例外を投げ、try-exceptで投げる

try:
  raise FError("     ")
except FError as e:
  print(e)

ここで簡単なカスタム異常型のテンプレートをください。

class CustomError(Exception):
  def __init__(self,ErrorInfo):
    super().__init__(self) #     
    self.errorinfo=ErrorInfo
  def __str__(self):
    return self.errorinfo

if __name__ == '__main__':
  try:
    raise CustomError('    ')
  except CustomError as e:
    print(e)

補足知識:Pythonカスタム異常とよくある異常タイプ
try...except...else...finallyに対して

def self_error(type_list):
 """      
          ,          
 :paramtype_list:       
 """
 try:
 for i in type_list:
  print(i)
 except:
 print("       ")
 else:
 print("      ")
 finally:
 print("      ")
self_error("abc")
"""
a
b
c
      
      """
self_error(2)
"""       
      """
try部分がうまくいけばelse部分を実行し、try部分にエラーがあったらexcept部分を実行することができますが、二つの場合は最後にfinally部分を出力しました。もちろん、elseとfinallyの部分は省略できます。私たちは間違ったタイプの出力をカスタマイズできます。ライセ関数が必要です。

def self_error(type_num):
  """      
  
         ,      
  :paramtype_num:            
  :return      
  """
  if type_num<10:
   raise ValueError("    10")
  else:
   return 200
 if __name__=="__main__":
 self_error(11) #200
 self_error(9) #ValueError:     10
ライセ投げ異常はpythonの標準異常類にのみ適用されます。
異常名称説明
ArthmeticErrorのすべての数値計算が間違っているベースクラス
AspectionErrは文の失敗を言います。
AttributeErrオブジェクトにはこの属性がありません。
BaseExceptionのすべての異常な基質
Deprecation Warning廃棄された特徴に関する警告
EvironmenntErrオペレーティングシステムエラーのベースクラス
EOFErrorはビルド入力がなく、EOFマークに到達しました。
Exceptionの一般的なエラーのベースクラス
Float ingPointErr浮動小数点計算エラー
FuturreWarningは、将来的に意味が変わるという警告があります。
Generator Exitジェネレータ(generator)に異常が発生し、終了を通知します。
ImportErrorモジュール/オブジェクトの導入に失敗しました。
Indentation Errインデントエラー
IndexErrorシーケンスにはこのインデックスがありません。
IOError入出力操作に失敗しました。
KeyboardInterruptユーザが実行を中断しました(通常は入力^Cです)。
KeyboardInterruptユーザが実行を中断しました(通常は入力^Cです)。
キーの中にはこのキーがありません。
LookupErrer無効データクエリのベースクラス
メモリオーバーフローエラー(Python解釈器にとって致命的ではない)
NameErr未宣言/初期化オブジェクト(属性なし)
NotImplement dErrorがまだ実現していない方法
OErrオペレーティングシステムエラー
OverflowErr数値演算が最大限度を超えています。
OverflowWarning古い自動的にロング整数にアップグレードすることについての警告
PendingDeprection Warningは、特性が廃棄されることについての警告です。
ReferenceError弱引用(Weak reference)はゴミ回収された対象を訪問しようとします。
RuntimeErrのような運転時エラー
RuntimeWarningの不審な運転時の挙動に関する警告
Standard Errarのすべての内装基準異常の基質
StopIterationは、より多くの値がありません。
SyntaxError Python文法エラー
Syntax Warningの怪しい文法の警告
システムエラー
System Exitインタプリタは終了を要求します。
System Exit Python解凍器は終了を要求します。
TabError Tabとスペースを混ぜて使う。
Type Errorタイプに対して無効な操作
UnboundLocarrは初期化されていないローカル変数にアクセスします。
Unicode DecodeErr Unicode復号時のエラー
Unicode EncocdeErr Unicoodeコード時にエラーが発生しました。
Unicode Error Unicode関連エラー
Unicode Translate Error Unicode変換時エラー
UserWarningユーザコード生成の警告
ValueError着信無効のパラメータ
Warning警告の基質
WindowsErrerシステムの起動に失敗しました。
Zero Division Errはゼロ(またはすべてのデータタイプ)を除きます。
以上は個人の経験ですので、参考にしていただければと思います。間違いがあったり、完全に考えていないところがあれば、教えてください。