python 8:捕获异常

作者: 金石明镜 | 来源:发表于2019-11-09 20:42 被阅读0次

一、捕获一个异常

def get_age():

    while True:

        try:

            n = int(input('How old are you?'))

            return n

        except ValueError:

            print('Please enter an integer value.')

这个例子中,只捕获一个异常:ValueError,这是int()函数会引发的一种异常。这个函数可能引发VaulueError,还会引发TypeError。

二、同时捕获多个异常

def convert_to_int1(s, base):

    try:

        return int(s, base)

    except (ValueError, TypeError):

        return 'error'

这个函数用到了int()函数,它可以引发ValueError和TypeError。

int()函数的两个参数,第一个是数字组成的字符串,第二个是不小于2且不大于36的正整数。它们表达的是以第二个参数为基数的第一个参数作为数值时的十进制形式。例如,int('100',2)为4,int('100',3)为9。

例1:捕获ValueError

>>>convert_to_int1('three',3)

'error'

例2:捕获另一种ValueError

>>>convert_to_int1('2',1)

'error'

第二个参数不符合条件。

例3:捕获TypeError

>>> convert_to_int1(100,3)

'error'

第一个参数必须是字符串,类型不对。

这种方式,不能区分捕获到的是哪一种异常。因为不管捕获到哪一种,显示都是一样的。

三、分别捕获多个异常

def convert_to_int2(s, base):

    try:

        return int(s, base)

    except ValueError:

        return 'value error'

    except TypeError:

        return 'type error'

例1:捕获ValueError

>>>convert_to_int2('three',3)

value 'error'

例2:捕获另一种ValueError

>>>convert_to_int2('2',1)

'value error'

第二个参数不符合条件。

例3:捕获TypeError

>>> convert_to_int2(100,3)

'type error'

第一个参数必须是字符串,类型不对。

这种方式,可以分辨出是哪一种异常。

四、捕获所有异常

def convert_to_int3(s, base):

    try:

        return int(s, base)

    except:

        return 'error'

例1:捕获ValueError

>>>convert_to_int3('three',3)

'error'

例2:捕获另一种ValueError

>>>convert_to_int3('2',1)

'error'

第二个参数不符合条件。

例3:捕获TypeError

>>> convert_to_int3(100,3)

'error'

第一个参数必须是字符串,类型不对。

这种,也不能分辨出是哪一种异常。但是,写法简单,不用知道有什么异常。用在不用关心发生了何种错误的场合。

相关文章

  • python 8:捕获异常

    一、捕获一个异常 def get_age(): while True: try: n = ...

  • Python异常处理

    Python异常处理 一、捕获异常 1.异常捕获语法 2.错误类型捕获 except:处理所有异常。except ...

  • Python错误处理机制

    @(python程序员)[Python] Python Cookbook 捕获所有的异常 处理异常的时候最好还会尽...

  • (三)python错误与异常&面向对象编程

    python错误与异常 语法错误与定位 异常捕获、异常处理 try:xxxexcept: 自定义异常 python...

  • 异常处理

    捕获异常 raise语法: 格式:raise 异常名称(‘异常描述’) python中常见的异常

  • python异常捕获

    下面写一个程序,这个程序接受用户的输入一个的正整数,然后与预设的一个正整数数比较,给出比较结果。 其中用户输入和预...

  • python异常捕获

    捕获多个异常 当一个代码片段可能会抛出多个异常时,可以将异常类型放入一个元组中(必须是元组(),数组[]没有效果)...

  • python捕获异常

    语法

  • Python异常处理(个人笔记)

    Python3 异常处理 捕获全部异常 各种异常清单 抛出异常 若想知道是否抛出了异常

  • Python Debug

    1. 异常: 1.1 抛出异常 使用raise关键字抛出异常 1.2 捕获异常 2. 断言 禁用断言python ...

网友评论

    本文标题:python 8:捕获异常

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