Pythonユーザーカスタム異常の実現


実際の開発では、システムが提供する異常なタイプが開発のニーズを満たすことができない場合があります。この時、新しい異常類を作成することで、自分の異常を持つことができます。異常類はException類から直接引継ぎ、または間接的に継承できます。
よくある内蔵異常はありますか?

1.カスタム異常タイプ

#1.         ,       Exception   ,             ,        
class TooLongExceptin(Exception):
  "this is user's Exception for check the length of name "
  def __init__(self,leng):
    self.leng = leng
  def __str__(self):
    print("     "+str(self.leng)+",     ")

2.どうやって手動で投げたら異常:ライセ
システムの異常はトリガがあれば自動的に投げ出しますが、ユーザーがカスタマイズした異常はいつまでに投げ出すかを決める必要があります。
ライセ唯一のパラメータは投げ出される異常を指定しました。それは異常なインスタンスまたは異常なクラス(つまりExceptionのサブクラス)である必要があります。大多数の異常な名前は「Error」で終わるので、実際に名前をつける時はできるだけ標準の異常な名前と同じようにします。

#1.         
class TooLongExceptin(Exception):
  "this is user's Exception for check the length of name "
  def __init__(self,leng):
    self.leng = leng
  def __str__(self):
    print("     "+str(self.leng)+",     ")
 
#2.             
def name_Test():
    name = input("enter your naem:")
    if len(name)>4:
      raise TooLongExceptin(len(name)) #       ,  raise  ,      ,   
    else :
      print(name)
 
#    ,  
name_Test()
-----------------                     :--------------------------------------
enter your naem:      
Traceback (most recent call last):
     6,     
 File "D:/pythoyworkspace/file_demo/Class_Demo/extion_demo.py", line 21, in <module>
  name_Test()
__main__.TooLongExceptin: <exception str() failed>

3.ユーザーが手動で投げた異常を捕捉する

#1.           ,           
def name_Test():
  try:
    name = input("enter your naem:")
    if len(name)>4:
      raise TooLongExceptin(len(name))
    else :
      print(name)
 
  except TooLongExceptin,e_result: #             
    print("      ")
    print("      :",e_result)
 
#    ,  
name_Test()
==========      :==================================================
enter your naem:aaafsdf
      
Traceback (most recent call last):
      :      7,     
     7,     
 File "D:/pythoyworkspace/file_demo/Class_Demo/extion_demo.py", line 16, in name_Test
  raise TooLongExceptin(len(name))
__main__.TooLongExceptin: <exception str() failed>
 
During handling of the above exception, another exception occurred:
 
Traceback (most recent call last):
 File "D:/pythoyworkspace/file_demo/Class_Demo/extion_demo.py", line 26, in <module>
  name_Test()
 File "D:/pythoyworkspace/file_demo/Class_Demo/extion_demo.py", line 22, in name_Test
  print("      :",e_result)
TypeError: __str__ returned non-string (type NoneType)

ここでPythonユーザーのカスタマイズ異常の実現に関する記事を紹介します。Pythonに関するユーザー定義の異常内容については、以前の文章を検索したり、下記の関連記事を見たりしてください。これからもよろしくお願いします。