【Python基础篇】异常和程序调试

1. 异常

        我自己简单粗暴的理解,程序运行出现问题和错误(如,文件不存在),交互时网络出现错误(如,通讯超时),亦或是发生系统错误(如,空间满了),都可以认为是异常。

        代码中常见的异常:ZeroDivisionError\NameError\TypeError等

2. 如何捕获和处理异常

  2.1 Python 异常处理语法如下:

# 语法
try:
    程序执行语句块

except Exception as alias:
    异常处理语句块
...

else:
    无异常时处理语句块

finally:
    必须的处理语句块

 2.2 Python的内置异常与自定义异常

         一切的异常都是类,父类:Exception

异常描述
AttributeError试图访问一个对象没有的属性
IOError输入、输出异常
ImportError无法引入模块或包;多是路径问题或名称错误
IndentationError缩进错误
IndexError下标索引错误
KeyError试图访问不存在的键
KeyboardInterruptCtrl+C 被按下,键盘终止输入
NameError使用未定义的变量
SyntaxError语法错误
TypeError传入对象的类型与要求的不符合
UnboundLocalError试图访问一个还未被设置的局部变量
ValueError传入一个调用者不期望的值,即使值的类型是正确的

        自定义异常方法如下:

# 自定义异常举例:cusError文件夹下创建文件 TransformError.py
class TransformError(Exception):

    def __init__(self, errorCode=50000, message='transformError'):
        self.errorCode = errorCode
        self.message = message

    def __str__(self): # 不打印xx.class, 更人性化
        return "[%d] %s" % (self.errorCode, self.message)

# 调用
from cusError import TransformError

try:
    a = int('abc')
    raise TransformError(50001, "TransformError")

except Exception as e:
    print(type(e))
    print(e)

finally:
    pass

2.3 主动抛出异常

        raise:抛出捕获到的异常(交由调用者处理)

        若 raise 后不带参数,则表示将Exception内容原封不动抛出

3. pycharm程序调试方法

        step over: 一条条执行;快捷键 F8

        run to cursor: 下一个断点;快捷键 F9

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值