在您进入try块之前发生崩溃。如果您输入带有当前代码的字母,它不会在except块中打印错误。
只需将输入部分放在单独的try块中将无法捕获它-您需要与try相关的except块,其中发生错误,例如
try: a = float(input('num1: ')) b = float(input('num2: '))except ValueError as e: print ('Value Error')try: result = a / bexcept ZeroDivisionError as e: print ('Zero DivisionError')print(result)
或者,您可以将所有输入和除法都放在try块中,并捕获当前的报告:
try: a = float(input('num1: ')) b = float(input('num2: ')) result = a / bexcept ValueError as e: print ('error type: ', type (e))print(result)
编辑:请注意,如果在这些任何一个中确实发生任何错误,则稍后将导致进一步的错误。最好选择第二个选项,但是将print(结果)移到try块中。这是唯一要定义的时间。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)