Python中的異常處理

Python中的異常處理和Java中的類似,看下代碼:

try:
    s = input('please enter two numbers separated by comma: ')
    num1 = int(s.split(',')[0].strip())
    num2 = int(s.split(',')[1].strip())
except ValueError as err:
    print('Value Error: {}'.format(err))
except IndexError as err:
    print('Index Error: {}'.format(err))
except Exception as err:
    print('Other error: {}'.format(err))
finally:
    print('finally')
 
print('continue')

當程序存在多個 except block時,最多只有一個 except block會被執(zhí)行。如果存在多個匹配的,只有最前面的except block會被執(zhí)行,其他則被忽略。
finally:無論什么情況下,finally中的語句都會被執(zhí)行,即使前面的 try 和 except block中使用了 return 語句。

自定義異常

我們可以創(chuàng)建自己的異常類型。

class MyInputError(Exception):
    def __init__(self, value):
        self.value = value
    def __str__(self):
        return ("{} is valid input".format(self.value))

try:
    raise MyInputError(1)
except MyInputError as err:
    print('error: {}'.format(err))

error: 1 is valid input

異常使用場景

通常來說,在程序中,如果我們不確定某段代碼能否執(zhí)行成功,這個地方就需要使用異常處理。
比如將json字符串轉(zhuǎn)json,如果字符串不符合格式要求,可能會報錯,這時候,可以添加try/except,但是異常也不能濫用。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容