python - PYTHON:如何在 try 块中捕获多个验证的异常?
问题描述
如何在单个 try 块中捕获多个验证的异常?有可能还是我需要为此使用多个 try 块?这是我的代码:
import sys
def math_func(num1, num2):
return num1*num2
a,b = map(str,sys.stdin.readline().split(' '))
try:
a = int(a)
b = int(b)
print("Result is - ", math_func(a,b), "\n")
except FirstException: # For A
print("A is not an int!")
except SecondException: # For B
print("B is not an int!")
解决方案
Python 相信显式异常处理。如果您的意图是只知道哪一行导致异常,那么不要尝试多个异常。在您的情况下,您不需要单独的异常处理程序,因为您没有根据引发异常的特定行执行任何条件操作。
import sys
import traceback
def math_func(num1, num2):
return num1*num2
a,b = map(str, sys.stdin.readline().split(' '))
try:
a = int(a)
b = int(b)
print("Result is - ", math_func(a,b), "\n")
except ValueError:
print(traceback.format_exc())
这将打印导致错误的行
推荐阅读
- javascript - 如何使用 Javascript 根据页面 URL 显示 2 个随机数并将其存储到用户缓存中?
- c# - Visual Studio 无法与 Xcode 通信
- deployment - Azure DevOps - 计划发布部署不可用
- iis-10 - IIS 请求过滤器规则未显示在 applicationHost.config 中
- bash - 在 bash shell 中使用重命名命令重命名文件
- interrupt-handling - 如何处理虚假中断?
- python - 检查表 B 中的 X、Y 列对是否在表 A 中任何 X、Y 列对的增量距离内
- single-sign-on - 使用 SAML 和用户数据的卷影副本进行单点登录
- python - 对新 python 用户的推荐
- c# - 如果设备具有振动功能,您如何以编程方式在 Xamarin Forms for Android 中查找?