如何在Python中拋出異常

如何在Python中拋出異常

有時會出現一些情況,您可能不知道在應用程序設計過程中如何處理Python中的錯誤事件。 也許您甚至無法在特定級別上處理錯誤,而需要將其傳遞給其他級別來處理。 簡而言之,在某些情況下,您的應用程序必須生成一個異常。 這種行為稱為引發(或拋出)異常。

在異常情況下拋出異常

本示例演示瞭如何拋出一個簡單的異常。以下步驟僅創建異常,然後立即對其進行處理。

1. 打開“ Python文件”窗口。您會看到一個編輯器,您可以在其中鍵入示例代碼。

2. 在窗口中輸入以下代碼,在每一行之後按Enter鍵:

<code>try:
raise ValueError
except ValueError:
print("ValueError Exception!")/<code>

它向您展示瞭如何在最基本的級別上引發異常。在這種情況下,加註調用將出現在try…except塊內。基本的引發調用僅提供引發(或引發)異常的名稱。您還可以在輸出中提供參數,以提供其他信息。

注意,此try…except塊缺少else子句,因為調用後無事可做,添加else子句是可選的。另一方面,您必須添加至少一個except子句。

3. 選擇運行→運行模塊。您會看到一個Python Shell窗口打開。 該應用程序顯示預期的異常文本。

如何在Python中拋出異常

將錯誤信息傳遞給調用者

Python提供了異常靈活的錯誤處理,無論您使用哪種異常,您都可以將信息傳遞給調用方(正在調用代碼的代碼)。

您可能想知道在使用ValueError異常時是否能提供比Python本地提供的異常更好的信息。 以下步驟顯示您可以修改輸出,使其包含有用的信息。

1. 打開“ Python文件”窗口。您會看到一個編輯器,您可以在其中鍵入示例代碼。

2. 在窗口中輸入以下代碼,在每一行之後按Enter鍵:

<code>try:
Ex = ValueError()
Ex.strerror = "Value must be within 1 and 10."
raise Ex
except ValueError as e:
print("ValueError Exception!", e.strerror)/<code>

ValueError異常通常不提供名為strerror的屬性(字符串錯誤的通用名稱),但是您可以通過如下所示簡單地為其分配值來添加它。 當示例引發異常時,except子句照常處理它,但使用e獲得對屬性的訪問。 然後,您可以訪問e.strerror成員以獲取添加的信息。

3. 選擇運行→運行模塊。您會看到一個Python Shell窗口打開。 該應用程序顯示擴展的ValueError異常。

如何在Python中拋出異常


分享到:


相關文章: