我需要编写一个随机抛出三个异常之一的函数: ValueError,TypeError或RuntimeError。代替函数调用,处理所有三个异常。 我的理解是,我需要“提高”例外之一,但我不理解“提高”如何与“ random.choice”一起工作。你能帮助我吗?谢谢您的回答。
def function1 ():
try:
import random
raise random.choiсe([ValueError('Error1'), TypeError('Error2'), RuntimeError('Error3')])
except ValueError:
print ('Wrong Value!')
except TypeError:
print ('Wrong Type!')
except RuntimeError:
print ('Runtime Error!')
答案 0 :(得分:0)
我明白了您要完成的工作。代码的问题在于,您将引发所有三个错误,而您的意图只是随机引发一个。这是一种方法:
errors = [
(ValueError, 'Error1'),
(TypeError, 'Error2'),
(RuntimeError, 'Error3')
]
error, message = random.choice(errors)
try:
raise error(message)
注释
errors
是一个元组列表,每个元组表示一个错误和一条消息random.choice()
,然后选择以下错误和消息之一答案 1 :(得分:0)
据我所知,您可以使用ctl
并从int(choice(lst))
中进行选择以随机抛出前两个错误,然后可以'a'(ValueError), [1, 2, 3](TypeError)
raise
>
RuntimeError
from random import choice lst = ['a', [1, 2, 3]] def handler(x): try: a = int(choice(lst)) except TypeError: print('Type Error') except ValueError: print('Value Error') raise RuntimeError('Runtime Error') handler(lst)