中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python報錯誤的解決方法

發布時間:2020-09-02 11:20:21 來源:億速云 閱讀:174 作者:小新 欄目:編程語言

這篇文章主要介紹python報錯誤的解決方法,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

在編寫Python代碼或開發實際應用的項目時,程序報出異常或錯誤是在所難免的,那么我們應該怎樣處理這些異常呢?下面來說一下方法。

1.使用try...except捕捉異常

try:
  s=1/0
except IndexError:
  print ('except')
except KeyError:
  print ('Keyerror')
except ZeroDivisionError:
  print ('ZeroDivisionError')

try:
  s=1/0
except:
  print ('出現異常')
或有多個異常名稱的格式
try:
  s = 1/0
except(IndexError,KeyError,ZeroDivisionError),e:
  print (e)

2.使用try ...except...else語句捕捉異常

當try塊中的代碼沒有異常時,則跳過except塊中的代碼,執行else塊中的代碼

工作原理:

1).如果try代碼塊語句執行發生異常,Python就跳回try,執行第一個匹配該異常的except塊中的代碼

2).如果異常發生在try代碼塊內,沒有匹配的except子句,name異常就會向上傳遞到程序中之前進入的try中,或者轉到這個進程的頂層(這會使python終止當前程序并打印默認的錯誤消息)

3).如果try塊中的代碼執行沒有異常發生,則python將執行else塊中的代碼

3.使用try...finally捕捉異常

當try塊中包含了finally語句,則python一定會在執行完try塊中的代碼之后在執行finally塊中的代碼(無論try塊中的代碼是否發生異常都將執行finally塊中的代碼)

工作原理:

1).如果執行try塊中的代碼時沒有發生異常,則Python會跳轉至finally語句并執行該代碼塊,然后繼續執行程序中finally語句之后的代碼

2).如果執行try塊中的代碼時發生異常,則Python依然會執行finally語句中的代碼塊,但是接著會將異常向上傳遞到上層的try語句或頂層的默認處理器,程序不會繼續執行導致發生異常的語句之后的try塊中的代碼。也就是說,即使發生了異常,finally代碼塊還是會被執行,和except不同的是,finally不會終止異常,而是在finally代碼塊執行后,一直處于發生狀態

4.使用raise拋出異常(手工引發異常)

raise<異常對象>

‘異常對象’表示將引發異常的異常名稱,且異常名稱標識了具體的異常類。raise語句還可指定對異常對象進行初始化的參數,為此需要在異常類的名稱后添加一個逗號以及指定參數(或者由參數構成的一個元組 )。一旦執行了raise語句,raise語句后的代碼將不能被執行

raise<異常對象>,<異常信息標識>

例子:

try:
  raise NameError
except NameError:
  print ('拋出一個異常')

5.自定義異常

格式class MyError(Exception):   

 def __init__(self,value):
      self.value=value
    def __str__(self):
      return repr(self.value)
   try:
      raise MyError(2*2)
   except MyError as e:
      print('My exceotion occurred,value:',e.value)

6.使用assert語句

用于檢測某個條件表達式是否為真。又稱斷言語句,即assert認為檢測的表達式永遠為真,斷言失敗就會引發AssertionError異常

語法格式:assert<條件判斷表達式>

username = 'admin'
password='123456'
assert username =='admin' and password == 'admin','密碼錯誤!'

以上是python報錯誤的解決方法的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

讷河市| 合川市| 南投县| 海伦市| 镶黄旗| 永嘉县| 杂多县| 胶南市| 碌曲县| 琼结县| 卢湾区| 康乐县| 屏南县| 博湖县| 安福县| 元阳县| 普洱| 额尔古纳市| 齐河县| 新宾| 沙湾县| 台中市| 疏勒县| 阿勒泰市| 长海县| 杭锦后旗| 温州市| 凌源市| 彭水| 黔西县| 淮滨县| 连云港市| 锡林郭勒盟| 田东县| 宁德市| 兰州市| 固始县| 专栏| 永泰县| 金山区| 隆子县|