Cry*_*ore 0 python exception tkinter
我正在使用 Tkinter 创建一个计算器应用程序。我需要多种类型的异常语句,通过针对用户引起的不同异常的不同类型的输出来告知用户。
例如:
如果用户将数字除以零,则会出现除零错误。在这种情况下,我必须创建一个仅处理除零错误的异常语句。
同时,如果用户输入“100++2”而不是“100+2”等无效操作,则会出现无效语法错误。在这种情况下,我必须在同一个尝试中指定不同的异常语句,以不同的方式处理这种情况。
那么,如何做到这一点呢?
可能值得查看错误和异常文档。
简而言之,您可以使用从 Python 类派生的语法except ExceptionType:指定不同异常类型的行为 - 可以在此处找到内置 Python 异常的列表。ExceptionTypeExceptionException
需要注意的是,当在块Exception中引发an 时,Python 将以自上而下的方式执行与引发的第一个块try内的代码。因此,通常位于给定/链的底部,为可能引发的未指定异常提供默认行为,它不是第一个,因为任何引发都会触发此行为,从而使链中的其他语句变得毫无意义。ExceptExceptionexcept Exception:tryexceptExceptionExcept
例子
下面的例子说明了以上几点。
这里eval()仅用于演示目的,请在eval()考虑在自己的代码中使用它之前了解使用它的固有危险。
def demo(e):
try:
eval(e)
except ZeroDivisionError as e:
print("ZeroDivisionError caught")
print(e)
except IndexError as e:
print("IndexError caught")
print(e)
except Exception as e:
print("Other Exception caught")
print(e)
examples = ["10/0", "[0,1,2][5]", "int('foo')"]
for e in examples:
demo(e)
print()
Run Code Online (Sandbox Code Playgroud)
输出
ZeroDivisionError caught
division by zero
IndexError caught
list index out of range
Other Exception caught
invalid literal for int() with base 10: 'foo'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3329 次 |
| 最近记录: |