Still getting Type and Value Error
def my_divider(a,b):
try:return a/b
except ZeroDivisionError:
return"Error: You cannot divide a number by 0"
except TypeError:
a=float(a)
b=float(b)
return a/b
except ValueError:
return"Please enter an integer"
var1=10
var2='dog'
print(my_divider(var1,var2))
首先,请在问题中粘贴你的代码
在您的情况下,TypeError正在触发,但是在调用
float('dog')
时,您将导致一个次要的ValueError异常要解决这个问题,您必须首先决定在这种情况下希望发生什么
我会回应@dkamins在这里说的话,但我需要代表,所以我会在这里尝试一下
你正在编写的代码看起来非常接近,当你看到它时,你会踢自己。try-except子句的大量使用!你看起来已经像个python高手了。是的,当您试图在
isinstance(b,str)
时分配b = float(b)
时会发生错误,但我认为,您正在尝试捕获该异常。但是由于它与一个separatetry except子句内联,所以它的行为就是您所看到的。比如说:小心!!!我们这里没有处理什么事情。{}会返回什么?我想你是从这里得到的,朋友
您正在捕获
TypeError
,这是正确的。如果您从这个except
块返回一些字符串,您的程序将毫无问题地运行并打印返回的字符串。但是你通过把dog
转换成string
来提高另一个ValueError
请记住,所有这些
except
块都用于一个try
块。如果我在处理第一个异常时导致另一个异常,我将编写另一个exception块,这将不起作用。您必须编写另一个try-except
块相关问题 更多 >
编程相关推荐