最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

[oeasy]python0139_嘗試捕獲異常_ try_except_traceback

2023-04-24 19:47 作者:oeasy  | 我要投稿

- 不但要有自己的報錯 ? ?- 還要保留系統(tǒng)的報錯- 有可能嗎?### 保留報錯![圖片描述](https://doc.shiyanlou.com/courses/uid1190679-20221029-1667047409821)- 最終結(jié)果![圖片描述](https://doc.shiyanlou.com/courses/uid1190679-20221029-1667047424252)- 可以讓報錯詳細(xì)一些嗎?- 比如文件、行號### 保留報錯細(xì)節(jié)![圖片描述](https://doc.shiyanlou.com/courses/uid1190679-20221029-1667047853333)- import traceback ? ?- traceback.print_exc()![圖片描述](https://doc.shiyanlou.com/courses/uid1190679-20221029-1667047872197)## 總結(jié)- 這次學(xué)習(xí)了 ?- try ?- except- 注意要點(diǎn) ?- 半角冒號 ?- 縮進(jìn) ?- 錯誤信息輸出- 有錯就處理 ?- 不要忽略、隱瞞 ?- 否則找不到出錯位置 ?- 還可以用traceback把 ? ?- 系統(tǒng)報錯信息原樣輸出- 但是代碼量好多啊 ?- 10多 行了 ?? ?- 可以把他輸入部分和輸出部分么???- 我們下次再說!??- 藍(lán)橋->https://www.lanqiao.cn/courses/3584- github->https://github.com/overmind1980/oeasy-python-tutorial- gitee->https://gitee.com/overmind1980/oeasypython

嘗試捕獲異常

回憶上次內(nèi)容

  • 變量相加

    • 整型數(shù)字變量可以相加

    • 字符串變量也可以拼接

  • 但是

    • 字符串 和 整型數(shù)字

    • 整型數(shù)字 和 字符串

    • 不能相加

  • 怎么辦?

    • int("1")

    • str(2)

    • 轉(zhuǎn)格式

  • 可是

    • int("abc")會發(fā)生什么????

    • 字符串"abc"

    • 如果輸入的蘋果數(shù)量是

先試試看

  • 雖然我有了心理準(zhǔn)備

    • 但是 python 顯然還沒有準(zhǔn)備好

  • 要讓 python 知道

    • 什么時候可能會出錯

簡化問題

  • python3 的意思是

    • 不知道怎么把 abc 轉(zhuǎn)化為十進(jìn)制數(shù)

  • 不但 python3 沒有辦法轉(zhuǎn)化

    • 我也沒有思路

  • 有的時候數(shù)字中確實(shí)可以有 abc

    • 比如 0xa 這種形式

  • 0xabc 是可以轉(zhuǎn)化為數(shù)字的

    • 如何進(jìn)行區(qū)分呢

    • abc 是不能轉(zhuǎn)化的

思路

  • 嘗試轉(zhuǎn)化的工作

    • 出現(xiàn)在倒數(shù)第二行

    • total = int(a) + int(b)

  • 需要做的

    • 著 運(yùn)行這一行

#!/usr/bin/python3a = input("How many apples do you have: ")print("You have got " + a + " apples!") b = input("How many banana do you have: ")print("You have got " + b + " bananas!") total = int(a) + int(b)print("You have got " + str(total) + " fruits in all!")
  • 既然 給了用戶輸入的 權(quán)利

    • 就要處理 用戶輸入的錯誤

  • 如果遇到了 不能轉(zhuǎn)化的情況

    • 給用戶 一個 明確的報錯

    • 就要處理

  • 怎么才能讓 python3 試著運(yùn)行呢?

搜索 try

  • 搜索一下 python3 + try

try

  • try 就是 試著來

    • 把需要試著來的代碼部分放到 try 里面

  • 試著 成功了

    • 就繼續(xù)運(yùn)行 try里面的代碼

    • 直到完成 try中所有的代碼

  • 試著 失敗了

    • 就跳轉(zhuǎn)到except部分 執(zhí)行

  • 這就是

    • 異常的處理

試著來

  • 下面的源代碼

    • 轉(zhuǎn)義成一個反斜杠\

    • 可以直接復(fù)制

    • 系統(tǒng)會將兩個反斜杠\\

#!/usr/bin/python3a = input("How many apples do you got?\\n")print("You got " + a + " apples!") b = input("How many bananas do you got?\\n")print("You got " + b + " bananas!")try: ? ?total = int(a) + int(b)except: ? ?print("\\33[41m[error]\\33[0m -- input should be numbers!")print("You got " + str(total) + " fruits!")
  • 注意

    • 待嘗試的內(nèi)容需要縮進(jìn) 4 個字符

    • total = int(a) + int(b)

    • 所有需要try的內(nèi)容都要

    • 就像while True中需要循環(huán)的循環(huán)體

    • 縮進(jìn)距離不多不少

    • 縮進(jìn)

    • 需要縮進(jìn)一樣

    • 4個就很合適

    • 是英文半角的

    • 要緊跟著 try、except

    • 冒號

    • 縮進(jìn)

嘗試運(yùn)行

  • 運(yùn)行失敗了

    • 成功報了錯

  • 原來想的是 試著執(zhí)行這句

    • total = int(a) + int(b)

  • 可是這句 里面

    • 不但進(jìn)行 類型轉(zhuǎn)化

    • 還聲明了 一個變量 total

  • 這個total

    • 由于int("a") 會出現(xiàn)錯誤

    • 根本沒有被聲明

    • 而且 后面還要被引用

  • 后面引用不到

    • 所以報錯了

    • 沒 try成功

  • 怎么辦?

再次修正

  • 都放 try 里面

#!/usr/bin/pythona = input("How many apples do you got?\\n")print("You got " + a + " apples!") b = input("How many bananas do you got?\\n")print("You got " + b + " bananas!")try: ? ?total = int(a) + int(b) ? ?print("You got " + str(total) + " fruits!")except: ? ?print("\\33[41m[error]\\33[0m -- input should be numbers!")

嘗試

  • 試試行不行

  • 這次終于成功地報錯了!

    • 或者說我接管了相關(guān)的報錯信息

    • 對于這類錯有了自己的處理

    • 這就是捕獲了異常

    • 并且處理了異常

  • 紅顏色的 error 好扎眼

    • 我把他瞞下來

    • 不報錯可以么?

不報錯

#!/usr/bin/pythona = input("How many apples do you got?\\n")print("You got " + a + " apples!") b = input("How many bananas do you got?\\n")print("You got " + b + " bananas!")try: ? ?total = int(a) + int(b) ? ?print("You got " + str(total) + " fruits!")except: ? ?pass
  • <font style="color:red;font-size:48px;">這不行!!!??</font>

    • 異常錯誤不處理不行

    • 要明確得處理

    • 要明確的報錯

  • 知道哪里錯了

    • 才好修改

  • 如果假裝沒犯錯

    • 就會完全沒有處理線索

    • 程序大了絕對讓人徹底崩潰

對應(yīng)禪語

  • 錯誤不應(yīng)被悄悄傳遞

    • 除非你確定需要這樣做

  • 精準(zhǔn)地捕獲異常

    • 不寫 except:pass 風(fēng)格的代碼

    • 那什么是 except:pass 風(fēng)格的代碼呢?

異常飄過

  • 就是 那種知錯不報錯的方式

    • 雖然 except接收到了錯誤

    • 但是 輕輕飄過pass

  • 上面這是錯的!

    • 這是最要命的

    • 讓人沒有追蹤trace的痕跡

    • 無法調(diào)試debug!

    • 無語問蒼天??!

  • 不但要有自己的報錯

    • 還要保留系統(tǒng)的報錯

  • 有可能嗎?

保留報錯

  • 最終結(jié)果

  • 可以讓報錯詳細(xì)一些嗎?

  • 比如文件、行號

保留報錯細(xì)節(jié)

  • import traceback

    • traceback.print_exc()

總結(jié)

  • 這次學(xué)習(xí)了

    • try

    • except

  • 注意要點(diǎn)

    • 半角冒號

    • 縮進(jìn)

    • 錯誤信息輸出

  • 有錯就處理

    • 系統(tǒng)報錯信息原樣輸出

    • 不要忽略、隱瞞

    • 否則找不到出錯位置

    • 還可以用traceback把

  • 但是代碼量好多啊

    • 10多 行了 ??

    • 可以把他輸入部分和輸出部分么???

  • 我們下次再說!??

  • 藍(lán)橋->https://www.lanqiao.cn/courses/3584

  • github->https://github.com/overmind1980/oeasy-python-tutorial

  • gitee->https://gitee.com/overmind1980/oeasypython



[oeasy]python0139_嘗試捕獲異常_ try_except_traceback的評論 (共 條)

分享到微博請遵守國家法律
迁西县| 五大连池市| 绩溪县| 天水市| 澎湖县| 东兰县| 武穴市| 长乐市| 梧州市| 肥东县| 永宁县| 株洲县| 集安市| 紫金县| 溧阳市| 沙雅县| 安陆市| 高碑店市| 桃园市| 龙川县| 黄平县| 安徽省| 淮滨县| 汽车| 丹寨县| 岐山县| 庄河市| 金昌市| 特克斯县| 兴国县| 华蓥市| 松桃| 卢湾区| 河津市| 施甸县| 抚松县| 精河县| 阿巴嘎旗| 玛多县| 积石山| 商都县|