千家信息网

Python中错误与异常如何处理

发表于:2025-01-25 作者:千家信息网编辑
千家信息网最后更新 2025年01月25日,这篇文章主要介绍了Python中错误与异常如何处理,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。前言语法错误SyntaxError 类
千家信息网最后更新 2025年01月25日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 sysclass 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 = messagetry:    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)    passexcept (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中错误与异常如何处理"这篇文章对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,更多相关知识等着你来学习!

0