01 初始異常處理

2021-10-04 18:13:04 字數 1403 閱讀 6012

目錄

異常機制本質

python 中一切都是物件,異常也採用物件的方式來處理。

異常解決的關鍵:定位

異常機制處理的是可能會遇到的情況, 邏輯處理的是肯定會遇到的情況

異常指程式執行過程**現的非正常現象,例如使用者輸入錯誤、除數為零、需

要處理的檔案不存在、陣列下標越界等。

所謂異常處理,就是指程式在出現問題時依然可以正確的執行剩餘的程式,而

不會因為異常而終止程式執行。python 中,引進了很多用來描述和處理異常的類,稱為異常類。異常類定義中包含了該類異常的資訊和對異常進行處理的方法;

處理過程:

1. 丟擲異常:在執行乙個方法時,如果發生異常,則這個方法生成代表該

異常的乙個物件,停止當前執行路徑,並把異常物件提交給直譯器。

捕獲異常:直譯器得到該異常後,尋找相應的**來處理該異常。

當發生異常時,直譯器會報相關的錯誤資訊,並會在控制台列印出相關錯誤資訊。我們只需按照從上到下的順序即可追溯(trackback)錯誤發生的過程,最終定位引起錯誤的那一行**;

#coding=utf-8

#異常測試

'''traceback 追溯

most recent call last 最後一次呼叫

zerodivisionerror: division by zero: 異常描述: 0不能作為除數

定位錯誤: 從上往下看異常資訊,追溯關鍵錯誤資訊

'''def a():

num=1/0

def b():

a()def c():

b()c()輸出:

d:\wwwroot\pyiteam\venv\scripts\python.exe d:/wwwroot/pyiteam/mypro_obj/mypy02.py

traceback (most recent call last):

file "d:/wwwroot/pyiteam/mypro_obj/mypy02.py", line 14, in c()

file "d:/wwwroot/pyiteam/mypro_obj/mypy02.py", line 13, in c

b()file "d:/wwwroot/pyiteam/mypro_obj/mypy02.py", line 11, in b

a()file "d:/wwwroot/pyiteam/mypro_obj/mypy02.py", line 9, in a

num=1/0

zerodivisionerror: division by zero

process finished with exit code 1

01 異常 異常處理

注意 1 對定義的變數能初始化的盡量初始化,如果賦的值可能產生誤導,可以採用可空型別 例如 double?dnumres null 3 異常 執行的時候出現的錯誤,或bug 編寫 的預期條件玉實際條件不穩合 異常的機制是為了保證程式可以一直正常執行。丟擲異常 throw new exception ...

struts 異常處理 全域性異常處理

記錄一下全域性異常處理的過程 處理主動丟擲的異常,轉向錯誤提示頁面。1 寫乙個自己的異常,繼承runtimeexception,從父類生成構造方法 package me.yndy.srtp.exception suppresswarnings serial public class errorexc...

python異常處理 Python 異常處理

使用者輸入不完整 比如輸入為空 或者輸入非法 輸入不是數字 異常就是程式執行時發生錯誤的訊號,在python中,錯誤觸發的異常如下 在python中不同的異常可以用不同的型別 python中統一了類與型別,型別即類 去標識,不同的類物件標識不同的異常,乙個異常標識一種錯 觸發indexerror 觸...