クラス内から Python プログラムで発生させたユーザー定義の例外が、main()
. クラスがあるとします:
class Pdbalog:
# Constructor
def __init__(self, logtype):
if logtype == 1 or logtype == 2:
# These are valid
self.logtypeV = logtype
...<continue processing>
else:
# Invalid
raise Exception("Invalid Logtype")
私main
のように見えます:
from pdbalog import *
def main():
try:
mylog = Pdbalog(10)
...<other code here>
except "Invalid Logtype":
print('Exiting...')
except:
print('Unhandled exception')
raise
オブジェクトmain
をインスタンス化する行で例外 ( ) が発生し、main() の例外ハンドラが出力文字列を出力することがいつ実行されるかを期待します。ただし、そうではありません。未処理の例外ハンドラによって処理されています。最終的に何が起こるかは、文字列が出力されていることです。なぜではないPdbalog
Exception("Invalid Logtype")
except "Invalid Logtype"
"Exiting..."
"Unhandled exception"
except "Invalid Logtype":
例外を処理しますか?
古いバージョンの python (2.4) を使用しています。