异常处理结构1:
try:
代码块
except:(异常类型)
代码块
举例:
def foo(a):
try:b *= 100/a
except ZeroDivisionError:
print("除数不为零")
return -1
except:
print("未知错误")
return -2
执行结果:
foo(0)
除数不为零
foo(“abc”)
未知错误
异常处理结构2:
try:
代码块
except: #except多组
代码块
else: #未出现异常时的返回
代码块
finally: #一定要执行的内容
代码块
举例1:
try:
print(1/a)
except:
print("except")
else:
print("else")
finally:
print("finally")
执行结果:
输入
a = 1
输出
1.0
else
finally
输入
a = 0
输出
except
finally
举例2:
def f(a):
try:
print(1/a)
return 1/a
except:
print("except")
return "except"
else:
print("else")
return "else"
finally:
print("finally")
return "finally"
执行结果:
输入
f(1)
输出
1.0
finally
‘finally’
输入
f(0)
输出
except
finally
‘finally’
自定义一个异常
class DemoException(Exception):
def __init__(self, name, msg = "自定义异常"):
self.name = name
self.msg = msg
try:
raise DemoException("脚本错误")
except DemoException as e:
print("{}异常的报警是{}".format(e.name, e.msg))