技術問答
技術文章
iT 徵才
Tag
聊天室
2025 鐵人賽
登入/註冊
問答
文章
Tag
邦友
鐵人賽
搜尋
第 11 屆 iThome 鐵人賽
DAY
29
0
自我挑戰組
從不懂,到玩上手的Python語言
系列 第
29
篇
Day29- 例外處理 (Exception)
11th鐵人賽
岳岳
團隊
CPR爆肝初心者
2019-10-15 17:33:06
5595 瀏覽
分享至
Part1.例外處理簡介
學習目標
何謂「例外」(Exception)?
為什麼需要有「例外」機制?
Python 例外機制的長相
何謂「例外(Exception)」
定義
程式執行過程中,足以中斷程式執行的錯誤
如果沒有「例外處理」機制…
您或許會用 if ~ else 處理…
Python 的例外處理機制…
重點整理
何謂「例外」(Exception)?
任何足以中斷程式執行的錯誤
為何需要有「例外」機制?
為了就算發生錯誤,程式控制權仍在我們手上,不致於中斷執行
為了提供容易了解的錯誤訊息,給不知情的使用者
為了發生錯誤後,能讓使用者有修正的機會
Python 例外機制的長相
try ~ except ~ else 語法
Part2.例外捕捉
學習目標
Python 例外處理的語法
常見的例外有哪些?
例外處理範例
例外處理語法
Python 常見的例外類型
參考官方網站說明:
Built-in Exceptions
重點整理
Python 例外處理的語法
try ~ except ~ else ~ finally
try:主程式區(監視區)
except:例外處理區
else:無錯誤區
finally:收尾程式碼區
常見的例外有哪些?
詳見:
Built-in Exceptions
Part3.自訂例外
學習目標
自訂例外的步驟
自訂例外的範例
自訂例外步驟
為你的例外建立一個類別,並繼承 Exception 類別
如:class SalaryException(Exception)
在需要丟出該例外類別的場合,使用 raise 指令
如:raise SalaryException()
在主程式攔截該例外
用 try ~ except 攔截 SalaryException
自訂例外的範例(取自老師上課範例)
限制加薪幅度不得大於 5%,否則丟出例外警告之
先開啟「物件導向」章節的 HRSystem 專案的 employee.py 檔案
建立繼承 Exception 的 SalaryException 類別
新增 .raiseSalary() 方法
主程式:攔截 SalaryException
重點整理
自訂例外步驟
建立一個例外類別,並使該類別繼承 Exception。
在需要丟出該例外類別的場合,使用 raise 指令
在主程式使用 try ~ except 攔截該例外
留言
追蹤
檢舉
上一篇
Day28-物件導向設計封裝部分:建構函數(Constructor)
下一篇
Day30-總結30 天
系列文
從不懂,到玩上手的Python語言
共
30
篇
目錄
RSS系列文
訂閱系列文
9
人訂閱
26
DAY26-物件導向設計
27
Day27-物件導向設計 :封裝部分
28
Day28-物件導向設計封裝部分:建構函數(Constructor)
29
Day29- 例外處理 (Exception)
30
Day30-總結30 天
完整目錄
熱門推薦
{{ item.subject }}
{{ item.channelVendor }}
|
{{ item.webinarstarted }}
|
{{ formatDate(item.duration) }}
直播中
立即報名
尚未有邦友留言
立即登入留言
iThome鐵人賽
參賽組數
902
組
團體組數
37
組
累計文章數
19804
篇
完賽人數
529
人
看影片追技術
看更多
{{ item.subject }}
{{ item.channelVendor }}
|
{{ formatDate(item.duration) }}
直播中
熱門tag
看更多
15th鐵人賽
16th鐵人賽
13th鐵人賽
14th鐵人賽
17th鐵人賽
12th鐵人賽
11th鐵人賽
鐵人賽
2019鐵人賽
javascript
2018鐵人賽
python
2017鐵人賽
windows
php
c#
linux
windows server
css
react
熱門問題
桌機三更半夜自動開機不知在幹啥?是在下載還是在上傳資料?嚇死寶寶.去查設定我沒有設定在三更半夜更新或是掃毒呀!去查紀錄亦沒有當日凌晨的瀏覽紀錄,這到底是怎麼一回事,要如何查詢?是被安裝了病毒軟體?
維護合約的合理性
如何讓Windows 11 Professional 開啟Synology DS925+網路芳鄰的速度加快?
librenms 25.4.0 重開機都要重新設定
Librenms ssl憑證檢查 通知方式-已解決
如何找到電腦網路行為的觸發原因?
Exchange EMS掛掉導致Q信(2016)
檔案伺服器移轉
熱門回答
維護合約的合理性
桌機三更半夜自動開機不知在幹啥?是在下載還是在上傳資料?嚇死寶寶.去查設定我沒有設定在三更半夜更新或是掃毒呀!去查紀錄亦沒有當日凌晨的瀏覽紀錄,這到底是怎麼一回事,要如何查詢?是被安裝了病毒軟體?
librenms 25.4.0 重開機都要重新設定
Librenms ssl憑證檢查 通知方式-已解決
如何找到電腦網路行為的觸發原因?
熱門文章
C++開啟資料夾及檔案的方法
Microsoft AZ-305 認證考試介紹
TrueNAS:從入門到入土心得錄02
從 13 秒到 <1 秒:我用 AI 重寫 Google Apps Script 記帳系統
技術小書打槍重新整理中 結果發現三十天寫得好少題:"( 一次要補七題..
IT邦幫忙
×
標記使用者
輸入對方的帳號或暱稱
Loading
找不到結果。
標記
{{ result.label }}
{{ result.account }}