如何合并值错误?
How to combine value errors?
我有两个函数可以检查数据的正确性。这两个函数都会引发 ValueError。这些函数在“for”循环中执行,因此当一个函数引发错误时,第二个函数将不会执行。有没有可能通过第三个函数将 ValueErrors 和 return 它们结合起来?
例如:
datas = [4, "is", "data", None]
def func(word):
if not word:
raise ValueError("Wrong data!")
def func1(word):
if type(data) != str:
raise ValueError("Data isn't string!")
for data in datas:
func(data)
func1(data)
我想要的输出:
ValueError: Wrong data!
ValueError: Data isn't string!
我不确定 ValueErrors 是否可行,但也许还有其他一些合并错误的方法?
实现此目的最简单的方法是在列表中累积异常,然后按您认为合适的方式处理错误:
datas = [4, "is", "data", None]
errors = []
def func(word):
if not word:
raise ValueError("Wrong data!")
def func1(word):
if type(data) != str:
raise ValueError("Data isn't string!")
for data in datas:
try:
func(data)
func1(data)
except ValueError as e:
errors.append(e)
for error in errors:
print(error)
会输出
Data isn't string!
Wrong data!
我有两个函数可以检查数据的正确性。这两个函数都会引发 ValueError。这些函数在“for”循环中执行,因此当一个函数引发错误时,第二个函数将不会执行。有没有可能通过第三个函数将 ValueErrors 和 return 它们结合起来? 例如:
datas = [4, "is", "data", None]
def func(word):
if not word:
raise ValueError("Wrong data!")
def func1(word):
if type(data) != str:
raise ValueError("Data isn't string!")
for data in datas:
func(data)
func1(data)
我想要的输出:
ValueError: Wrong data!
ValueError: Data isn't string!
我不确定 ValueErrors 是否可行,但也许还有其他一些合并错误的方法?
实现此目的最简单的方法是在列表中累积异常,然后按您认为合适的方式处理错误:
datas = [4, "is", "data", None]
errors = []
def func(word):
if not word:
raise ValueError("Wrong data!")
def func1(word):
if type(data) != str:
raise ValueError("Data isn't string!")
for data in datas:
try:
func(data)
func1(data)
except ValueError as e:
errors.append(e)
for error in errors:
print(error)
会输出
Data isn't string!
Wrong data!