有没有办法找出哪些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