python中的异常处理
程序员文章站
2022-07-14 11:03:11
...
try-except:
try:
# print(abc)
open("abc.txt")
except NameError:
print("没有定义变量。。。。。")
except FileNotFoundError:
print("没有文件.....")
捕获多个异常:
#coding=utf-8
try:
print(abc)
# open("abc.txt")
except (NameError,FileNotFoundError):
print("没有定义变量。。。。。")
获取异常的基本信息:
try:
# print(abc)
open("abc.txt")
except (NameError,FileNotFoundError) as result:
print("产生了一个异常....%s"%result)
获取所有异常:
import time
try:
# while True:
# print("---ahaha---")
# time.sleep(1)
print(abc)
except Exception as result:
print("----s--s-s-s-s-s-s----")
print(result)
except:
print("----ahahahah----")
捕获异常:
try:
#如果产生了一个异常,但是except没有捕获,那么就会按照这个异常默认的处理方式进行
open("aaa.txt")
a = 100
print(a)
except NameError:
#如果在try中的代码产生了一个NameError时,才会执行的异常处理
print("捕获到了一个异常")
else:
#在try中的代码都没有产生异常的时候,才会执行的代码
print("-----1-----")
finally:
try:
#如果产生了一个异常,但是except没有捕获,那么就会按照这个异常默认的处理方式进行
open("aaa.txt")
a = 100
print(a)
except NameError:
#如果在try中的代码产生了一个NameError时,才会执行的异常处理
print("捕获到了一个异常")
else:
#在try中的代码都没有产生异常的时候,才会执行的代码
print("-----1-----")
finally:
print("-----最后执行的实行-0----")
异常传递:
def test1():
print("------1-1------")
print(num)
print("------1-2------")
def test2():
print("------2-1------")
test1()
print("------2-2------")
def test3():
try:
print("------2-1------")
test1()
print("------2-2------")
except Exception as result:
print("捕获到了异常:%s"%result)
test3()
自定义异常:
class Test(Exception):
def __init__(self, length, atleast):
self.length = length
self.atleast = atleast
try:
raise Test(1,2)
except Test as result:
print("---f-f-f-f-f----")
print(result.length)
print(result.atleast)
异常处理中抛出异常:
class Test(object):
def __init__(self, switch):
self.switch = switch #开关
def calc(self, a, b):
try:
return a/b
except Exception as result:
if self.switch:
print("捕获开启,已经捕获到了异常,信息如下:")
print(result)
else:
#重新抛出这个异常,此时就不会被这个异常处理给捕获到,从而触发默认的异常处理
raise
a = Test(True)
a.calc(11,0)
print("----------------------华丽的分割线----------------")
a.switch = False
a.calc(11,0)