2023年11月29日发(作者:)
python3.8学习⼼得(4)异常处理
⼀、常见的内置异常
BaseException:所有异常的基类。
System Exit:Python解释器请求退出。
KeyboardInterrupt:⽤户中断执⾏。
TypeError:对类型⽆效的操作
ValueError:传⼊⽆效的参数。
UnicodeError:Unicode相关的错误。
UnicodeDecodeError:Unicode解码时的错误。
UnicodeEncodeError:Unicode编码时的错误。
UnicodeTranslateError:Unicode转换时的错误。
Warning:警告的基类。
DeprecationWarning:关于被弃⽤的特征的警告。
FutureWarning:关于构造将来语义会有改变的警告。
OverflowWarning:旧的关于⾃动提升为长整型(Long)的警告。
PendingDeprecationWarning:关于特性将会被废弃的警告。
def get(n):
try:
if n==100:
data=s[4]
elif 200<=n<=500:
file=open(100,200,300)
except:
print("有错误发⽣")
else:
print("没有错误发⽣")
get(100)
get(200)
try:
raise ValueError
finally:
print('异常已经清楚啦')
输出结果如下所⽰:
raise ValueError
valueError
六、抛出异常
使⽤raise语句可以抛出⼀个指定的异常。例如:
raise NameError('这⾥使⽤raise抛出⼀个异常’)
输出结果如下所⽰:
raise NameError('这⾥使⽤raise抛出⼀个异常’)
NameError:这⾥使⽤raise抛出⼀个异常
raise 唯⼀的⼀个参数指定了要被抛出的异常。它必须是⼀个异常的实例或异常的类(Exception的⼦类)。
值得注意的是:如果⽤户只想判断是否会抛出⼀个异常,⽽不想去处理它,那么此时使⽤raise语句是最佳的选择。
七、离开嵌套循环
我们知道,如果想离开循环,就使⽤break语句,但是如果在⼀个嵌套循环之内,break语句只能离开最内层的循环,⽽不能离开嵌套循
环,此时就可以使⽤raise语句离开嵌套循环。
⽰例如下:
class ExitLoop(Exception):
class URLError(Exception):
pass
try:
raise URLError("这是URL异常")
except URLError as inst:
print([0])
输出结果如下所⽰:
这是URL异常


发布评论