try excep 用于抛出错误,注意,所用的抛出部分(except)应该在代码的最后部分,而不是在代码之中。
比如说这样
try:
houzhuiming = self.dizhi.split('.', 1)
#这里需要一个抛错来解决输入的东西是乱打的
houzhuiming = houzhuiming[1]
#这里需要做一个抛错来解决文件不存在,或者解码格式错误
except IndexError as f:
print("你好像输入了一个错误的值")
shur(self)
if houzhuiming == "csv":
print("经检验你输入的应该是一个csv文件")
if len(self.jiema) >0 :
shuju = pd.read_csv(dizhi)
neirong=shuju
if len(self.jiema)==0:
shuju=pd.read_csv(dizhi,encoding="utf-8")
neirong=shuju
except FileNotFoundError as e:
print("你好像输入了错误的地址")
shur(self)
except ValueError as w:
print("你好像输入了错误的解码方法")
if houzhuiming == "xlsx":
print("你输入的应该是一个xlsx文件")
if len(self.jiema) > 0:
shuju = pd.read_csv(self.dizhi)
neirong = shuju
if len(jiema) == 0:
shuju = pd.read_csv(self.dizhi, encoding="utf-8")
neirong = shuju
except FileNotFoundError as e:
print("你好像输入了错误的地址,请重新输入")
shur(self)
except ValueError as w:
print("你好像输入了错误的解码方法,请重新输入")
shur(self)
这样的抛错就是错误的,在代码解释上,编译器遇到错误后,只会返回第一个except。
如果该except没有抛出相关的错误的话,这个代码还是会进行。但是不会报错了
正确应该是这样
try:
houzhuiming = self.dizhi.split('.', 1)
#这里需要一个抛错来解决输入的东西是乱打的
houzhuiming = houzhuiming[1]
#这里需要做一个抛错来解决文件不存在,或者解码格式错误
if houzhuiming == "csv":
print("经检验你输入的应该是一个csv文件")
if len(self.jiema) >0 :
shuju = pd.read_csv(dizhi,encoding=self.jiema)
neirong=shuju
print(neirong)
if len(self.jiema)==0:
shuju=pd.read_csv(dizhi,encoding="utf-8")
neirong=shuju
print(neirong)
if houzhuiming == "xlsx":
print("你输入的应该是一个xlsx文件")
if len(self.jiema) > 0:
shuju = pd.read_csv(self.dizhi,encoding=self.jiema)
neirong = shuju
if len(self.jiema) == 0:
shuju = pd.read_csv(self.dizhi, encoding="utf-8")
neirong=shuju
print(neirong)
except FileNotFoundError:
print("你好像输入了错误的地址,请重新输入")
a = diyibuf
a.shur()
except LookupError :
print("你好像输入了错误的解码方法,请重新输入")
a = diyibuf
a.shur()
except IndexError :
print("你好像输入了一个错误的值")
a=diyibuf
a.shur()
所有的except都应该在代码的末尾部分。这样才算正确的