簡體   English   中英

如何在概念上處理python中的異常?

[英]How to handle exceptions in python conceptually?

在python中,通常定義用戶定義的異常,以便在用戶定義的類中發生錯誤時,它們可以返回一些用戶定義的測試/輸出。 但我想知道,如果有一個很好的做法來處理python中給定類的異常? 詳細地說,我有以下問題:

  1. 是否所有與類相關的異常都會進入定義python類的文件中,還是應該進入特定的文件?

  2. 是否應該為任何應該引發異常的事物的可能情況定義異常,或者僅僅為類定義一般異常並通過提供一些額外的文本打印出錯誤方式發生的位置和內容的詳細信息“ok” ?

  3. 如果有人可以發布一個用戶定義的異常如何/應該是什么樣子的示例,我將不勝感激,因此要查看為什么定義您自己的特定異常類是一件好事。

謝謝Alex

  1. 除了正在進行維護之外,Python程序的文件級組織並不是特別有趣。 模塊級組織在確定API時更為重要(至少在import時),因此請確保您的異常位於使用它們的模塊中。

    一個常見的設置是從該包的根目錄導出包的所有異常,因此您可以from foo import Foo, FooError, BarError 模塊系統是否可以隱藏定義是否存在於同一文件中。

  2. 完全取決於您期望捕獲異常的細粒度。 但是,我經常發現內置的異常( ValueErrorTypeError等)足夠精細。 對於包中可能出錯的特定事物,您可能會添加一個或多個例外。

  3. 怎么樣......

     class ParseError(Exception): def __init__(self, parser_input, line, column): self.input = parse_input self.line = line self.column = column def __str__(self): # format the exception message, showing the offending part of # self.input and what the parser was expecting. 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM