美文网首页
Python中的异常处理

Python中的异常处理

作者: o0龙与猫0o | 来源:发表于2020-02-10 14:42 被阅读0次

    Python中的异常处理和Java中的类似,看下代码:

    try:
        s = input('please enter two numbers separated by comma: ')
        num1 = int(s.split(',')[0].strip())
        num2 = int(s.split(',')[1].strip())
    except ValueError as err:
        print('Value Error: {}'.format(err))
    except IndexError as err:
        print('Index Error: {}'.format(err))
    except Exception as err:
        print('Other error: {}'.format(err))
    finally:
        print('finally')
     
    print('continue')
    

    当程序存在多个 except block时,最多只有一个 except block会被执行。如果存在多个匹配的,只有最前面的except block会被执行,其他则被忽略。
    finally:无论什么情况下,finally中的语句都会被执行,即使前面的 try 和 except block中使用了 return 语句。

    自定义异常

    我们可以创建自己的异常类型。

    class MyInputError(Exception):
        def __init__(self, value):
            self.value = value
        def __str__(self):
            return ("{} is valid input".format(self.value))
    
    try:
        raise MyInputError(1)
    except MyInputError as err:
        print('error: {}'.format(err))
    
    error: 1 is valid input
    

    异常使用场景

    通常来说,在程序中,如果我们不确定某段代码能否执行成功,这个地方就需要使用异常处理。
    比如将json字符串转json,如果字符串不符合格式要求,可能会报错,这时候,可以添加try/except,但是异常也不能滥用。

    相关文章

      网友评论

          本文标题:Python中的异常处理

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