189 8069 5689

Python中错误与异常如何处理

这篇文章主要介绍了Python中错误与异常如何处理,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

为新密等地区用户提供了全套网页设计制作服务,及新密网站建设行业解决方案。主营业务为成都网站建设、网站建设、新密网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!

前言

语法错误

SyntaxError 类表示语法错误,当解释器发现代码无法通过语法检查时会触发的错误。语法错误是无法用 try...except...捕获的。

>>> print:
  File "", line 1
    print:
         ^
SyntaxError: invalid syntax

异常

Python使用被称为异常的特殊对象来管理程序执行期间发生的错误,每当发生让Python不知所措的错误时,它都会创建一个异常对象,如果编写了处理异常的代码,程序将继续运行;如果未对异常做处理,程序将进行停止,并显示一个traceback,其中包含有关异常的报告。

异常处理

print(5/0)

运行结果:

Traceback (most recent call last):
  File "文件与异常/文件与异常.py", line 228, in 
    print(5/0)
ZeroDivisionError: division by zero

异常处理使用以下格式:

try-except代码块
 
try-except代码块
try:
    print(5/0)
except ZeroDivisionError:
    print("can't divide by zero")
#结果
 print("can't divide by zero")
抛出异常

抛出异常

使用 raise 语句抛出一个指定的异常。

raise 唯一的一个参数指定了要被抛出的异常。它必须是一个异常的实例或者是异常的类(也就是 Exception 的子类)。

如果你只想知道这是否抛出了一个异常,并不想去处理它,那么一个简单的 raise 语句就可以再次把它抛出。

自定义异常

可以通过创建一个新的异常类来拥有自己的异常。异常类继承自 Exception 类,可以直接继承,或者间接继承。

当创建一个模块有可能抛出多种不同的异常时,一种通常的做法是为这个包建立一个基础异常类,然后基于这个基础类为不同的错误情况创建不同的子类。

大多数的异常的名字都以”Error”结尾,就跟标准的异常命名一样。

实例

 
import sys


class Error(Exception):
    """Base class for exceptions in this module."""
    pass


# 自定义异常
class InputError(Error):
    """Exception raised for errors in the input.

    Attributes:
        expression -- input expression in which the error occurred
        message -- explanation of the error
    """

    def __init__(self, expression, message):
        self.expression = expression
        self.message = message


try:
    print('code start running...')

    raise InputError('input()', 'input error')

    # ValueError
    int('a')

    # TypeError
    s = 1 + 'a'

    dit = {'name': 'john'}
    # KeyError
    print(dit['1'])
except InputError as ex:
    print("InputError:", ex.message)
except TypeError as ex:
    print('TypeError:', ex.args)
    pass
except (KeyError, IndexError) as ex:
    """支持同时处理多个异常, 用括号放到元组里"""
    print(sys.exc_info())
except:
    """捕获其他未指定的异常"""
    print("Unexpected error:", sys.exc_info()[0])
    # raise 用于抛出异常
    raise RuntimeError('RuntimeError')
else:
    """当无任何异常时, 会执行 else 子句"""
    print('"else" 子句...')
finally:
    """无论有无异常, 均会执行 finally"""
    print('finally, ending')

感谢你能够认真阅读完这篇文章,希望小编分享的“Python中错误与异常如何处理”这篇文章对大家有帮助,同时也希望大家多多支持创新互联,关注创新互联行业资讯频道,更多相关知识等着你来学习!


新闻名称:Python中错误与异常如何处理
网站路径:http://jkwzsj.com/article/pgeeie.html

其他资讯