Python学习第五十天—异常(上)

[复制链接]
15271953841 发表于 2024-3-14 07:13:08 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

×
Python 3.12.1 (tags/v3.12.1:2305ca5, Dec  7 2023, 22:03:25) [MSC v.1937 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license()" for more information.
print(“I love Python.”)
SyntaxError: invalid character '“' (U+201C)       (错误使用中文字符—引号)
1/0
Traceback (most recent call last):
  File "<pyshell#1>", line 1, in <module>
    1/0
ZeroDivisionError: division by zero             (语法错误,除数不能为0)
"FishC"+520                    
Traceback (most recent call last):
  File "<pyshell#2>", line 1, in <module>
    "FishC"+520
TypeError: can only concatenate str (not "int") to str           (字符串加数字错误)
一、        处理异常try——except处理和捕获异常
try:
    检测范围
except:[expression[as identifier]]:
异常处理代码
try:               (try语句中出现异常,就会执行except语句,而不是抛出红色的输出)
    1/0
except:
    print("出错了~")

   
出错了~
try:                  (try语句中没有出现异常,except中语句就不会被执行)
    1/1
except:
    print("出错了~")

   
1.0
try:
    1/0
except ZeroDivisionError:             (指定异常,只有当捕获到的异常是你指定的那个异常的时候,才会执行except语句中的内容,否则该报错还还报错——抛出一段红色的输出)
    print("出错了~")

   
出错了~
try:
    520 + "FishC"
except ZeroDivisionError:          (它捕获不到指定的异常ZeroDivisionError错误,而捕获的是TypeError错误)
    print("出错了~")

   
Traceback (most recent call last):
  File "<pyshell#14>", line 2, in <module>
    520 + "FishC"
TypeError: unsupported operand type(s) for +: 'int' and 'str'
try:
    1/0
except ZeroDivisionError as e:      (as e 将异常原因提取出来)
    print(e)

   
division by zero             (错误的简单介绍,在红色输出中也可找到这个简介,它给打印出来)

有时候不知道代码会出现哪一种异常,所以可以将多个可能出现的异常使用元组的形式包裹起来:
try:
    1/0
    520 + "FishC"
except (ZeroDivisionError,ValueError,TypeError):
    pass

try:
    1/0
    520 + "FishC"
except ZeroDivisionError:
    print("除数不能为0!")
except ValueError:
    print("值不正确.")
except TypeError:
    print("类型不正确.")

   
除数不能为0!               (因为它捕获异常,就直接跳到了指定的异常处理的代码,然后就往下走了,所以520 + "FishC"这一句就被忽略了,跳过了。)

QQ客服返回顶部