python中使用try....except对可能发生异常的语句进行处理;
try-except:
所有异常:
所有异常处理:except可以处理一个指定的异常,如果没有指定异常,则默认处理所有异常;
也可以用Exception捕获万能异常;
s1 = 'hello'
try:
int(s1)
except Exception as e:
print(e)
指定异常:
捕获指定的异常
s1 = 'hello'
try:
int(s1)
except IndexError as e:
print(e)
except KeyError as e:
print(e)
except ValueError as e:
print(e)
常见的十大异常Python十类常见异常类型总结(附捕获及异常处理方式)_python_脚本之家
try-except-else:
当try主代码执行正常时,才会执行else;
s1 = 1.1
try:
int(s1)
print('--------')
except ValueError as e:
print(e)
else:
print('转换成功')
try-except-finally:
无论异常与否,都会执行finally中的代码;
s1 = '1.1'
try:
int(s1)
print('--------')
except ValueError as e:
print(e)
else:
print('转换成功')
finally:
print('我都会执行')
#invalid literal for int() with base 10: '1.1'
#我都会执行
主动抛出异常
raise Exception('messages')可以自定义报错信息:
try:
raise Exception('错误了。。。')
except Exception as e:
print(e)
自定义异常:
class dukkException(Exception):
def __init__(self, msg):
self.message = msg
def __str__(self):
return self.message
try:
raise dukkException('我的异常')
except dukkException as e:
print(e)