Python基础知识(二)之程序的异常处理

一、异常类型

python中异常信息中表明发生异常的原因,也提供处理异常的依据。

1、异常信息的分析

(如下图)尤其是<异常类型>需要重点关注!

 2、常见异常错误类型

(1)缩进错误(IndentationError):一般以4个空格或一个tab作为缩进,若多出来空格或遗漏,程序都会出错(检查if/for/while等下的结构体是否正确缩进)。

(2)语法错误(SyntaxError)

  • 无效语法(SyntaxError:invalid syntax:标点符号遗漏(检查for/if/while末尾是否添加冒号)/中英文符号混用/变量名使用了关键字/是否将运算符==写成了赋值符号=
  • 标识符中有无效字符(SynataxError:invalid character in identifier
  • 字符串不完整(SyntaxError:EQL while scanning string literal):检查字符串两边引号是否统一/括号是否成对出现/引号嵌套是否错误(建议外层''内层"")/字符串的末尾是否将\n写成了/n
  • 参数定义顺序错误(SyntaxError:non-default argument folllows default argument):默认值参数是否放置在所有参数的最后。

(3)变量名错误(NameError):变量名命名规则是只可包含字母/数字/下划线/数字不可用于开头等(检查代码中变量是否赋值/变量名前后是否统一

(4)索引错误(IndexError):检查索引值是否超出字符串长度/列表为空[],无法获取索引值

(5)类型错误(TypeError):对象用来表示值的类型发生错误(比较抽象,看一下错误例子好理解!)

age=18
print("我的年龄是"+age)  #报错:提示必须是一个字符串,不可以是数字
输出结果::
TypeError:can only concatenate str(not"int")to str


#修改后
age=18
print("我的年龄是"+"age")
#或者是
age=18
print("我的年龄是"+str(age))
 

(6)属性错误(AttributeError):尝试访问未知对象时出现错误/如赋值失败(可将元组换成列表试试)

a=('1','3','5')
a.append('7')
print(a)
输出结果:
AttributeError: 'tuple' object has no attribute 'append'
#元组对象没有"append"的属性(元组不可变)

#修改后
a=('1','3','5')
a=list(a)
a.append('7')
print(a)
输出结果为:
['1', '3', '5', '7']

二、程序的异常处理

1、try-except语句

语法:try:

                <语句块1>

        except <异常类型>:

                <语句块2>

try:
    a=eval(input("请输入一个整数:"))
except NameError:
    print("输入错误!")

输出结果:
请输入一个整数:A
输入错误!

2、异常的高级用法

语法:try:

                <语句块1>

        except <异常类型1>:

                <语句块2>

        else:                           #对try语句正常执行后的追加处理

                <语句块3>

        finally:                        #无论是否异常,在执行的最后一句一定会输出<语句块4>

                <语句块4>

try:
    a=eval(input("请输入一个整数:"))
    print(a)
except NameError:
    print("输入错误!")
else:
    print("正常执行!")
finally:
    print("程序执行完毕")

输出结果:
请输入一个整数:4
4
正常执行!
程序执行完毕

请输入一个整数:aaaa
输入错误!
程序执行完毕

3、try-except的适用性

try-except语句会影响代码的可读性,增加代码维护难度,所以在面向商业应用的软件产品时,并不会过多使用try-except语句

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Ziskakkkkk

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值