python 异常处理

80 阅读1分钟
try:
    <语句0>   # 需要监听运行的代码
except <异常1>:
    <语句1>	# 如果<语句0>发生了<异常1>,则运行<语句1>
except <异常2>:
    <语句2>	# 如果<语句0>发生了<异常2>,则运行<语句2>
else:
    <语句3>	# 如果没有异常,则运行<语句3>
    
    
try:
    <语句0>
finally:
    <语句1>    # 退出try时总会执行
    
# 就算是捕获异常并且return返回,那么finally最后仍会运行
def xxx():
    i = 0
    try:
        while i < 10:
            i += 1
            print(i)
            if i == 4:
                print('结束程序')
                #continue
                raise SyntaxError
    except SyntaxError:
        print('报错','SyntaxError')
        return i
    finally:
        print('打印i:',i)

xx=xxx()
print(xx)

################## finally例子
try:
    fh = open("testfile", "w")
    try:
        fh.write("这是一个测试文件,用于测试异常!!")
    finally:
        print "关闭文件"
        fh.close()
except IOError:
    print "Error: 没有找到文件或读取文件失败"


################## 捕获异常,显示异常信息
def temp_int(var):
    try:
        return int(var)
    except ValueError as Argument:
        print('参数不是数字:',Argument)


temp_int('df')

# 以上输出内容:
>>> 参数不是数字: invalid literal for int() with base 10: 'df'


################## 触发异常
# 定义函数
def mye( level ):
    if level < 1:
        raise Exception("Invalid level!",level)
        # 触发异常后,后面的代码就不会再执行,level可以省略
try:
    mye(0)            # 触发异常
except Exception as err:
    print(1,err)
else:
    print(2)
    
    
# 以上输出结果:
>>> 1 Invalid level!