有沒有辦法找出哪些Python的方法可以提高其意外事件或錯誤?我在官方的Python文檔中沒有發現太多內容。有沒有辦法找出哪些Python的方法可以提高其異常或錯誤
2
A
回答
6
一般來說,答案是否定的。有些例外情況是有記錄的,但大多數只是遵循可以學習的一般模式。 的SyntaxError首先檢查並提出了語法上是無效的代碼。當一個變量是未定義的(未分配尚未或拼寫錯誤)NameError出現。 類型錯誤提高了錯誤的參數數目或不匹配的數據類型。 ValueError異常裝置的類型是正確的,但該值不爲功能意義(即,負向輸入math.sqrt()。如果該值是在一個序列中查找索引,IndexError上升。如果值是一個映射查找的關鍵,KeyError異常提高。另一種常見的例外是AttributeError的爲缺少的屬性。的IOError是失敗的I/O,而且OSERROR的操作系統錯誤。
除了學習常見模式,通常只需運行一個函數並查看它在給定的cir中引發的異常就很容易cumstance。
通常,函數無法知道或記錄所有可能的錯誤,因爲輸入可能會引發它們自己的異常。考慮一下這個功能:
def f(a, b):
return a + b
它可以提高類型錯誤如果參數的數目是錯誤的,或者如果一個不支持__add__
方法。但是,基礎數據可能會引發不同的例外情況:
>>> f(10)
Traceback (most recent call last):
File "<pyshell#3>", line 1, in <module>
f(10)
TypeError: f() takes exactly 2 arguments (1 given)
>>> f(10, 20)
30
>>> f('hello', 'world')
'helloworld'
>>> f(10, 'world')
Traceback (most recent call last):
File "<pyshell#6>", line 1, in <module>
f(10, 'world')
File "<pyshell#2>", line 2, in f
return a + b
TypeError: unsupported operand type(s) for +: 'int' and 'str'
>>> class A:
def __init__(self, x):
self.x = x
def __add__(self, other):
raise RuntimeError(other)
>>> f(A(5), A(7))
Traceback (most recent call last):
File "<pyshell#13>", line 1, in <module>
f(A(5), A(7))
File "<pyshell#2>", line 2, in f
return a + b
File "<pyshell#12>", line 5, in __add__
raise RuntimeError(other)
RuntimeError: <__main__.A instance at 0x103ce2ab8>
1
您可以__name__
發現異常的名稱,例如:
try :
some_function()
except Exception as ex :
print('function: {0}, exception: {1}'.format(some_function.__name__, type(ex).__name__))
相關問題
- 1. 有沒有辦法說出哪些動詞更高效
- 2. 有沒有辦法找出哪種方法最耗時? Eclipse Java
- 3. Python的copy.deepcopy()失敗,沒有提出警告,異常或錯誤
- 4. 有沒有其他方法可以提高性能?
- 5. 有沒有辦法找出引發異常的行?
- 6. 有沒有什麼辦法可以提高-subimage搜索性能
- 7. 有沒有辦法找出一個調用者是否高度信任沒有可能引發異常?
- 8. 調用類中的方法,沒有觸發異常或錯誤
- 9. 哪裏可以找到方法拋出的異常?
- 10. 有沒有辦法找出哪些變更集我沒有同步?
- 11. 有沒有一種方法可以獲取SSIS可以提出的所有異常消息的列表
- 12. 有沒有辦法控制哪些類可以訪問類中的某些方法?
- 13. ActionScript - 有沒有辦法告訴開發者這種方法會拋出異常?
- 14. 有沒有辦法找出哪些軟件包使用我的軟件包?
- 15. 有沒有辦法自動確定語句可能拋出的可能異常?
- 16. 有沒有辦法找出TButtonGroup的哪個按鈕被點擊?
- 17. 有沒有辦法讓Runnable的run()拋出異常?
- 18. 哪種方法可以提高性能?
- 19. 有沒有辦法用Python單擊自動處理異常?
- 20. C# - 有沒有辦法確定哪個變量拋出空引用異常?
- 21. 有沒有辦法找出提交了SQL查詢的用戶?
- 22. 有沒有辦法找出分支從哪裏來?
- 23. 有沒有辦法找出創建哪個類實例'this'
- 24. 有沒有辦法找出css規則來自哪裏?
- 25. 有沒有辦法找出用戶連接到哪個App Store?
- 26. 有沒有辦法使用Chrome API添加彈出式異常?
- 27. 有沒有辦法在Python 3.x中獲得可能的異常列表?
- 28. 有沒有方法總結或列出所有當前的PyLint錯誤,以崇高(或否則)?
- 29. XmlSerializer可以拋出哪些異常?
- 30. Python沒有約束的方法錯誤
事實上,任何事情都會引發異常,特別是在您傳遞它無法處理的參數時。 –
通過「哪個Python方法可以引發哪個異常或錯誤」,你是指哪種方法_will_提高它,或者只是有能力提高它? –
我指的是Excpetions /錯誤其可能可以通過特定的方法升高。 – no0by5