農會 資訊管理類程式設計110 年第 46 題單選題
在Python例外處理時,下列何者為直譯器發生內部錯誤時,所丟出的例外物件?
AOverflowError
BSyntaxError
CSystemError正確答案
DTypeError
C正確答案
Python中SystemError專門用於直譯器內部錯誤;SyntaxError是語法錯,TypeError是型別錯。
為什麼答案是 C
當Python直譯器本身發現內部錯誤(非使用者程式碼邏輯錯)時所丟出的例外物件,即為本題正解。
考點:數值溢位考點:語法錯誤考點:直譯器內部錯誤考點:型別錯誤
載入中…
完整詳解
Pro · 無限重點 Python中SystemError專門用於直譯器內部錯誤;SyntaxError是語法錯,TypeError是型別錯。
看到「直譯器內部錯誤」秒選SystemError。System(系統/直譯器層級)對應內部錯誤,與使用者程式碼邏輯無關。
逐選項分析
A數值溢位✕
數值運算結果超出該型別可表示的最大範圍時觸發,屬於算術運算錯誤,與直譯器內部無關。
B語法錯誤✕ 陷阱
程式碼不符合Python語法規則時觸發,發生在解析階段而非直譯器內部錯誤。
C直譯器內部錯誤✓ 正確
當Python直譯器本身發現內部錯誤(非使用者程式碼邏輯錯)時所丟出的例外物件,即為本題正解。
D型別錯誤✕
將操作或函式應用於不適當型別的物件時觸發,例如將字串與整數直接相加。
Python 常見內建例外對照表
| 例外名稱 | 觸發情境 | 錯誤層級 |
|---|
| SystemError | 直譯器內部錯誤 | 系統/直譯器層 |
| SyntaxError | 程式碼語法不正確 | 解析/編譯層 |
| TypeError | 物件型別不匹配 | 使用者邏輯層 |
| OverflowError | 數值運算超出範圍 | 使用者邏輯層 |
考生容易將SystemError與SyntaxError或RuntimeError混淆。SystemError特指「直譯器內部」出錯,而非使用者寫的程式碼語法錯或執行期邏輯錯。