阿摩線上測驗 登入

申論題資訊

試卷:109年 - 109 司法特種考試_三等_檢察事務官電子資訊組:程式語言#90094
科目:程式語言
年份:109年
排序:0

申論題內容

四、試說明物件導向程式語言的內建及自定例外處理方式,並舉例說明其用 法。(25分)

詳解 (共 1 筆)

詳解 提供者:hchungw
在物件導向程式語言(OOP)中,例外處理(Exception Handling)是一種處理運行時錯誤的方法,允許程式在遇到錯誤時不會立即崩潰,而是通過捕獲和處理例外來優雅地應對錯誤情況。大多數 OOP 語言都有內建的例外處理機制,並允許開發者自定義例外類別來處理特定的錯誤情況。
以下是對內建及自定例外處理方式的簡單說明和使用範例:
內建例外處理
內建例外是語言本身提供的例外類別,用於處理常見的錯誤情況,如零除錯誤、索引超出範圍、檔案未找到等。以 Python 為例,內建例外處理使用 try、except、else 和 finally 關鍵字。
範例(Python):
python
複製程式碼
try:
    # 嘗試執行這段代碼
    result = 10 / 0
except ZeroDivisionError as e:
    # 捕獲並處理零除錯誤
    print(f"Error occurred: {e}")
else:
    # 如果沒有發生錯誤則執行這段代碼
    print(f"The result is {result}")
finally:
    # 無論是否發生錯誤都會執行這段代碼
    print("Execution completed")
輸出:
vbnet
複製程式碼
Error occurred: division by zero
Execution completed
自定例外處理
自定例外允許開發者根據具體需求定義新的例外類別,用於處理特定的錯誤情況。這些類別通常繼承自內建的 Exception 類別或其子類別。
範例(Python):
python
複製程式碼
# 定義自定例外類別
class CustomError(Exception):
    pass
def divide(a, b):
    if b == 0:
        # 拋出自定例外
        raise CustomError("You cannot divide by zero!")
    return a / b
try:
    result = divide(10, 0)
except CustomError as e:
    # 捕獲並處理自定例外
    print(f"CustomError occurred: {e}")
else:
    print(f"The result is {result}")
finally:
    print("Execution completed")
輸出:
csharp
複製程式碼
CustomError occurred: You cannot divide by zero!
Execution completed
總結
內建例外處理:
使用 try、except、else 和 finally 關鍵字來捕獲和處理內建的例外。
常見內建例外類別包括 ZeroDivisionError、IndexError、FileNotFoundError 等。
自定例外處理:
通過繼承 Exception 類別定義新的例外類別。
使用 raise 關鍵字在需要的地方拋出自定例外,並在 except 區塊中捕獲和處理這些例外。
例外處理機制使程式能夠更靈活和健壯地應對各種錯誤情況,提供更好的錯誤管理和用戶體驗。