美文网首页
Python学习日志第八篇(1023)

Python学习日志第八篇(1023)

作者: Qin0821 | 来源:发表于2018-10-17 10:27 被阅读0次

异常处理

引发异常

在代码的任何地方都可使用raise语句故意引发异常:

>>> raise IOError('This is a test!')
Traceback (most recent call last):
    File "<pyshell#6>", line 1, in <module> raise IOError('This is a test!')
IOError: This is a test!
捕获异常

ex:

def get_age():
    while Ture:
        try: 
            n = int(input('How old are you? '))
            return n
        except ValueError:
            print('Please enter an integer value.')

处理多种异常:

def convert_to_int2(s, base):
    try:
        return int(s, base)
    except ValueError:
        return 'value error'
    except TypeError:
        return 'type error'

捕获所有异常:

def convert_to_int3(s, base):
    try: 
        return int(s, base)
    except:
        return 'error'
with 语句

为了确保即便发生异常,也将尽早执行清理操作。

num = 1
f = open(fname)
for line in f:
    print('%04d %s' % (num, line), end = ' ')
    num = num + 1

这里不知道文件对象f将在何时关闭。f通常在for循环结束后关闭,但不知道准确的时间。
为确保不再需要的文件尽早关闭,可使用with语句:

num = 1
with open(fname, 'r') as f:
    for line in f:
        print('%04d %s' % (num, line), end = ' ')
        num = num + 1

使用with语句时,将在for循环结束后立即执行文件对象清理操作。

相关文章

网友评论

      本文标题:Python学习日志第八篇(1023)

      本文链接:https://www.haomeiwen.com/subject/siqhvftx.html