python3中的随机选择和提升
我需要编写一个函数,随机抛出三个异常之一: ValueError、TypeError或RuntimeError。在函数调用的地方,处理所有三个异常。 我如何理解,我需要“提出”一个例外,但我不明白“提出”如何与“随机选择”一起工作。你能帮助我吗?谢谢你的回答python3中的随机选择和提升,python,python-3.x,exception,Python,Python 3.x,Exception,我需要编写一个函数,随机抛出三个异常之一: ValueError、TypeError或RuntimeError。在函数调用的地方,处理所有三个异常。 我如何理解,我需要“提出”一个例外,但我不明白“提出”如何与“随机选择”一起工作。你能帮助我吗?谢谢你的回答 def function1 (): try: import random raise random.choiсe([ValueError('Error1'), TypeError('Error2'),
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!')
我明白你想做什么了。代码的问题是,您正在引发所有三个错误,而您只打算随机引发一个错误。以下是一种方法:
errors = [
(ValueError, 'Error1'),
(TypeError, 'Error2'),
(RuntimeError, 'Error3')
]
error, message = random.choice(errors)
try:
raise error(message)
注释
是一个元组列表,每个元组表示一个错误和一条消息errors
- 调用
然后选择其中一个错误和消息random.choice()
- 现在,这是一个提出错误的问题
int(choice(lst))
并从'a'(ValueError),[1,2,3](TypeError)
中进行选择,随机抛出前两个错误,然后您可以引发运行时错误
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)
值错误
回溯(最近一次呼叫最后一次):
文件“vash.py”,第13行,在
处理程序(lst)
处理程序中第11行的文件“vash.py”
引发运行时错误(“运行时错误”)
运行时错误:运行时错误
如果运行代码会发生什么?您需要更具体地说明您不了解的内容。不,提问者代码创建了三个异常对象,但只引发了一个异常对象。@HaiVu谢谢!现在我明白它是如何工作的了。
Value Error
Traceback (most recent call last):
File "vash.py", line 13, in <module>
handler(lst)
File "vash.py", line 11, in handler
raise RuntimeError('Runtime Error')
RuntimeError: Runtime Error