Python初接触--异常处理

本文介绍了Python中的异常处理机制,包括try/except语句的基本用法、try-finally语句的应用场景、异常参数的作用以及如何使用raise语句触发异常。通过实际代码示例展示了异常处理在文件操作中的应用。

python提供了两个非常重要的功能来处理python程序在运行中出现的异常和错误,可以使用该功能来调试python程序:
异常处理断言(Assertions)
1.异常处理
捕捉异常可以使用try/except语句。
try/except语句用来检测try语句块中的错误,从而让except语句捕获异常信息并处理。
如果你不想在异常发生时结束你的程序,只需在try里捕获它。
实例
下面是简单的例子,它打开一个文件,在该文件中的内容写入内容,且并未发生异常:

try:
    fh = open("testfile", "w")
    fh.write("这是一个测试文件,用于测试异常!!")
except IOError:
    print "Error: 没有找到文件或读取文件失败"
else:
    print "内容写入文件成功"
    fh.close()

以上程序输出结果:

$ python test.py 
内容写入文件成功
$ cat testfile       # 查看写入的内容
这是一个测试文件,用于测试异常!!

实例
下面是简单的例子,它打开一个文件,在该文件中的内容写入内容,但文件没有写入权限,发生了异常:

try:
    fh = open("testfile", "w")
    fh.write("这是一个测试文件,用于测试异常!!")
except IOError:
    print "Error: 没有找到文件或读取文件失败"
else:
    print "内容写入文件成功"
    fh.close()

在执行代码前为了测试方便,我们可以先去掉 testfile 文件的写权限,命令如下:

chmod -w testfile

再执行以上代码:

$ python test.py 
Error: 没有找到文件或读取文件失败

2.try-finally 语句
try-finally 语句无论是否发生异常都将执行最后的代码。

try:
<语句>
finally:
<语句>    #退出try时总会执行
raise

3.异常的参数
一个异常可以带上参数,可作为输出的异常信息参数。
实例
以下为单个异常的实例:

# 定义函数
def temp_convert(var):
    try:
        return int(var)
    except ValueError, Argument:
        print "参数没有包含数字\n", Argument

# 调用函数
temp_convert("xyz");

以上程序执行结果如下:

$ python test.py 
参数没有包含数字
invalid literal for int() with base 10: 'xyz'

4.触发异常
我们可以使用raise语句自己触发异常

def functionName( level ):
    if level < 1:
        raise Exception("Invalid level!", level)
        # 触发异常后,后面的代码就不会再执行
蓝桥杯Python赛是针对大学生的一项编程竞赛活动,旨在提升学生们的编程能力和解决实际问题的能力。对于参加Python组比赛的同学来说,需要掌握一定的基础知识,并具备良好的算法思维。 ### Python 级参赛者应准备的内容: #### 基础语法 1. **数据类型**:熟悉整型、浮点数、字符串等基本数据类型的创建及操作; 2. **控制结构**:包括条件判断(if...elif...else)以及循环(for, while),理解break和continue关键字的作用; 3. **函数定义与调用**:了解如何定义自定义函数(def语句), 掌握参数传递机制(位置传参、默认值参数); #### 标准库入门 1. **数学运算模块math**: 涉及到一些常见的三角函数计算,如sin(), cos() 等; 2. **随机数生成random**: 学会利用此模块生成伪随机序列,在某些模拟场景下非常有用; 3. **时间日期处理time/datetime**: 对于涉及到具体时刻或持续时间段的问题很有帮助; #### 文件读写能力 能够熟练地打开文件(open())并完成文本内容的读取(read/write lines) 和关闭(close()), 同时也要注意异常情况下的资源回收(with-as 语句块). #### 数据结构基础 接触列表(lists)、字典(dictionaries)这两种复合的数据容器,学习它们各自的特性及其常用的操作方法,比如增删改查元素. 为了更好地备战蓝桥杯Python赛阶段的比赛,建议平时多做练习题积累经验,可以参考历年真题加深理解和记忆。同时也可以通过在线评测系统(OJ)来进行针对性训练。 --
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值