华南俳烁实业有限公司

python

當前位置:中華考試網(wǎng) >> python >> python編程基礎 >> 文章內容

python報的錯誤怎么處理?

來源:中華考試網(wǎng)  [2020年9月27日]  【

  python報的錯誤怎么處理

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

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

#FormatTableID_0# #FormatTableID_1#

  或

#FormatTableID_2# #FormatTableID_3#

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

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

  工作原理:

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

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

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

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

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

  工作原理:

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

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

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

  raise<異常對象>

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

python學習課程預約提醒

  • 地區(qū):
  • 姓名:
  • 手機:

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

  例子:

#FormatTableID_4# #FormatTableID_5#

  5.自定義異常

  格式class MyError(Exception):

#FormatTableID_6# #FormatTableID_7#

  6.使用assert語句

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

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

#FormatTableID_8#

  username = 'admin'

  password='123456'

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

責編:hym
  • 會計考試
  • 建筑工程
  • 職業(yè)資格
  • 醫(yī)藥考試
  • 外語考試
  • 學歷考試
盐源县| 郎溪县| 墨竹工卡县| 栖霞市| 乐山市| 交城县| 满洲里市| 尉氏县| 本溪市| 深泽县| 凤冈县| 公安县| 香港 | 临汾市| 百色市| 塔河县| 永兴县| 北安市| 泸西县| 湛江市| 和静县| 客服| 刚察县| 浦城县| 安阳县| 马鞍山市| 景德镇市| 丹凤县| 达日县| 沾益县| 雅安市| 莱阳市| 郑州市| 渭南市| 华容县| 涿鹿县| 宜君县| 札达县| 平泉县| 辉县市| 陵川县|