首页 > 解决方案 > 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!")

标签: pythontry-except

解决方案


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())

这将打印导致错误的行


推荐阅读