異常以及else with語句筆記

#異常

#檢測異常

try:

...#檢測范圍

except OSError as reason:

#出現異常后的處理代碼

print('文件出錯\n 出錯的原因是:' + str(reason))

except TypeError as reason:

print('類型出錯\n 出錯的原因是:' + str(reason))

except ValueError as reason:

print('值出錯\n 出錯的原因是:' + str(reason))

finally:

#無論如何都會被執(zhí)行的代碼

...

#引出一個異常

>>> raise ZeroDivisionError(除數為零的異常)

Traceback (most recent call last):

? File "<pyshell#16>", line 1, in <module>

? ? raise ZeroDivisionError(除數為零的異常)

NameError: name '除數為零的異常' is not defined

-> try:

...

except:

print("出錯了") #這樣做不推薦,有的出錯類型不會顯示 例如ctrl+c

-> try:

...

except(OSError,TypeError):

print("出錯了")

--------------------------------------------------------------------

#豐富的else語句

1.和 while 語句配合

def showMaxFactor(num):

? ? count = num //2

? ? while count > 1:

? ? ? ? if num % count == 0:

? ? ? ? ? ? print("%d最大的約數是%d" % (num,count))

? ? ? ? ? ? break

? ? ? ? count -= 1

? ? else:

? ? ? ? print("%d是素數!" % num)

num = int(input('請輸入一個數:'))

showMaxFactor(num)

2.和 for 語句配合(和while語句相同)

3.和 try except 語句配合

try:

? ? int('abc')

except ValueError as reason:

? ? print("出錯啦:" + str(reason))

else:

? ? print("沒有任何異常")

#簡潔的with語句

try:

? ? with = open('data.txt',w) as f:

? ? for each_line in f:

? ? ? ? print(each_line)

except OSError as reason:

? ? print('出錯:' + str(reason))

with 會自動調用f.close()語句

--------------------------------------------------------------------

#標準異??偨Y

ArithmeticError 所有數值計算錯誤的基類

AssertionError 斷言語句(assert)失敗

AttributeError 屬性錯誤,特性引用和賦值失敗時會引發(fā)屬性錯誤,嘗試訪問未知的對象屬性

BaseException 所有異常的基類

EOFError 用戶輸入文件末尾標志EOF(Ctrl+d)

DeprecationWarning 關于被棄用的特征的警告

Exception:所有異常的基類,因為所有python異常類都是基類Exception的其中一員,異常都是從基類Exception繼承的,并且都在exceptions模塊中定義。

EnvironmentError 操作系統(tǒng)錯誤的基類

FloatingPointError 浮點計算錯誤

FutureWarning 關于構造將來語義會有改變的警告

GeneratorExit generator.close()方法被調用的時候,生成器(generator)發(fā)生異常來通知退出

ImportError 導入模塊失敗的時候

IndexError 索引錯誤,使用的索引不存在,索引超出序列的范圍

IOError:一般常見于打開不存在文件時會引發(fā)IOError錯誤,也可以解理為輸出輸入錯誤

KeyError 字典中查找一個不存在的關鍵字時引發(fā)的關鍵字錯誤

KeyboardInterrupt 用戶輸入中斷鍵(Ctrl+c)

LookupError 無效數據查詢的基類

MemoryError 內存溢出(可通過刪除對象釋放內存,對于Python 解釋器不是致命的)

NameError 嘗試訪問一個不存在(未申明)的變量

NotImplementedError 尚未實現的方法

OSError 操作系統(tǒng)產生的異常(例如打開一個不存在的文件)

OverflowError 數值運算超出最大限制

OverflowWarning 舊的關于自動提升為長整型(long)的警告

PendingDeprecationWarning 關于特性將會被廢棄的警告

ReferenceError 弱引用(weak reference)試圖訪問一個已經被垃圾回收機制回收了的對象

RuntimeError 一般的運行時錯誤

RuntimeWarning 可疑的運行時行為(runtime behavior)的警告

StopIteration 迭代器沒有更多的值

SyntaxError Python的語法錯誤,代碼形式錯誤

SyntaxWarning 可疑的語法的警告

StandardError 所有的內建標準異常的基類

IndentationError 縮進錯誤

TabError Tab和空格混合使用

SystemError Python編譯器系統(tǒng)錯誤

SystemExit Python編譯器進程被關閉

TypeError 類型錯誤,內建操作或是函數應于在了錯誤類型的對象時會引發(fā)類型錯誤

UserWarning 用戶代碼生成的警告

UnboundLocalError 訪問一個未初始化的本地變量(NameError的子類)

UnicodeError Unicode相關的錯誤(ValueError的子類)

UnicodeEncodeError Unicode編碼時的錯誤(UnicodeError的子類)

UnicodeDecodeError Unicode解碼時的錯誤(UnicodeError的子類)

UnicodeTranslateError Unicode轉換時的錯誤(UnicodeError的子類)

ValueError 值錯誤,傳給對象的參數類型不正確

WindowsError 系統(tǒng)調用失敗

Warning 警告的基類

ZeroDivisionError 除數為零,在用除法操作時,第二個參數為0時引發(fā)了該錯誤

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

相關閱讀更多精彩內容

  • 一、概要 ? 一個程序即使沒有任何語法錯誤,即使解題的邏輯也正確,在執(zhí)行的時候仍然可能出現 各種“運行時錯誤”,導...
    唯老閱讀 512評論 0 1
  • python提供了兩個非常重要的功能來處理python程序在運行中出現的異常和錯誤。你可以使用該功能來調試pyth...
    _寧采臣閱讀 1,095評論 0 10
  • 21天減脂第15天。本來今天練腿的,可是犯懶了,練腿實在太可怕了啊。 雙手輪胎前舉5組練前臂。俄羅斯轉體一組100...
    嘟嘟白白爸爸閱讀 187評論 0 0
  • 著名的民權律師與社會活動家布萊恩·史蒂文森在2012年的一次TED演講里,講了一個關于他外祖母的精彩故事。 史蒂文...
    大大的夢想簡書閱讀 851評論 0 0
  • 本月看了平生第一本武俠,《俠客行》。10月末金庸先生逝世后,各媒體回顧先生的武俠世界。11月詹青云老師的公眾...
    蓬蓬Doris閱讀 301評論 0 1

友情鏈接更多精彩內容