首页 后端开发 Python教程 浅谈python抛出异常、自定义异常, 传递异常

浅谈python抛出异常、自定义异常, 传递异常

Jul 21, 2016 pm 02:53 PM
自定义异常

一. 抛出异常

Python用异常对象(exception object)表示异常情况,遇到错误后,会引发异常。如果异常对象并未被处理或捕捉,程序就会用所谓的回溯(Traceback,一种错误信息)终止执行。

raise 语句

Python中的raise 关键字用于引发一个异常,基本上和C#和Java中的throw关键字相同,如下所示:

import traceback

def throw_error():
  raise Exception("抛出一个异常")#异常被抛出,print函数无法执行
  print("飞天猪")
  
throw_error()

登录后复制

#运行结果:

'''Traceback (most recent call last):
 File "C:\Users\Administrator\Desktop\systray.py", line 7, in <module>
  throw_error()
 File "C:\Users\Administrator\Desktop\systray.py", line 4, in throw_error
  raise Exception("抛出一个异常")#异常被抛出,print函数无法执行
Exception: 抛出一个异常'''
登录后复制

raise关键字后面是抛出是一个通用的异常类型(Exception),一般来说抛出的异常越详细越好

二.传递异常:

捕捉到了异常,但是又想重新引发它(传递异常),可以使用不带参数的raise语句即可:

class MufCalc(object):
  m = False
  def calc(self,exp):
    try:
      return eval(exp)
    except ZeroDivisionError:
      if self.m:
        print("cool")
      else:
        raise

app = MufCalc()
app.calc(2/0)

登录后复制

三.自定义异常类型

Python中也可以自定义自己的特殊类型的异常,只需要要从Exception类继承(直接或间接)即可:

class MyError(Exception):
  pass
登录后复制

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

热门话题

Java教程
1663
14
CakePHP 教程
1420
52
Laravel 教程
1313
25
PHP教程
1266
29
C# 教程
1238
24
如何在FastAPI中实现错误处理和自定义异常 如何在FastAPI中实现错误处理和自定义异常 Jul 29, 2023 pm 07:00 PM

如何在FastAPI中实现错误处理和自定义异常引言:FastAPI是一个基于Python的现代化Web框架,它的高性能和快速开发能力让它在开发领域中越来越受欢迎。在实际的应用中,经常会遇到处理错误和异常的情况。本文将介绍如何在FastAPI中实现错误处理和自定义异常,帮助开发者更好地处理和管理应用中的错误情况。FastAPI错误处理:FastAPI提供了一个

Java自定义异常的创建和使用 Java自定义异常的创建和使用 May 03, 2024 pm 10:27 PM

自定义异常用于创建错误消息和处理逻辑。首先,需继承Exception或RuntimeException创建自定义异常类。然后,可重写getMessage()方法设置异常消息。通过throw关键字抛出异常。使用try-catch块处理自定义异常。本文提供了一个解析整数输入的实战案例,在输入不为整数时抛出自定义InvalidInputException异常。

如何在CakePHP中创建自定义异常处理程序? 如何在CakePHP中创建自定义异常处理程序? Jun 03, 2023 pm 11:01 PM

CakePHP是一个流行的PHP框架,可以让您快速构建Web应用程序。在处理用户输入和执行数据库操作等任务时,可能会发生各种异常。如何处理异常,以便在发生问题时不会直接向用户呈现出错误信息?这就是自定义异常处理程序的用武之地。在本文中,我们将探讨如何在CakePHP中创建自定义异常处理程序。为什么我们需要自定义异常处理程序?当Web应用程序抛出异常时,Cak

Python 异常处理:掌握利刃,掌控代码人生 Python 异常处理:掌握利刃,掌控代码人生 Feb 25, 2024 pm 04:10 PM

python是一个强大的编程语言,但它并不完美。在运行Python程序时,可能会遇到各种各样的异常情况,导致程序崩溃或产生错误结果。为了避免这些情况的发生,我们需要对异常情况进行处理,也就是异常处理。异常处理的基本语法是try-except-finally。try语句块包含可能引发异常的代码,except语句块用于捕获异常,finally语句块用于无论是否发生异常,都会执行的代码。下面是一个简单的异常处理示例:try:#可能引发异常的代码exceptExceptionase:#捕获异常并处理fi

C++程序创建自定义异常 C++程序创建自定义异常 Aug 26, 2023 pm 07:53 PM

异常是C++的一个非常核心的概念。在执行过程中发生不希望或不可能的操作时会发生异常。在C++中处理这些不希望或不可能的操作被称为异常处理。异常处理主要使用三个特定的关键字,它们是‘try’、‘catch’和‘throw’。‘try’关键字用于执行可能遇到异常的代码,‘catch’关键字用于处理这些异常,‘throws’关键字用于创建异常。C++中的异常可以分为两种类型,即STL异常和用户定义的异常。在本文中,我们重点介绍如何创建这些自定义的异常。有关异常处理的更多详细信息可以在此处找到。使用单个

解决Java自定义异常处理异常(CustomExceptionHandlerException)的解决方案 解决Java自定义异常处理异常(CustomExceptionHandlerException)的解决方案 Aug 17, 2023 pm 06:18 PM

解决Java自定义异常处理异常(CustomExceptionHandlerException)的解决方案在Java开发中,我们经常会遇到各种异常情况。除了Java中已经定义好的异常类型,我们还可以自定义异常类型来更好地处理特定的业务逻辑。然而,在使用自定义异常处理的过程中,有时候也会遇到一些问题,比如CustomExceptionHandlerExcept

如何在 PHP 中捕获和处理自定义异常? 如何在 PHP 中捕获和处理自定义异常? May 09, 2024 pm 10:00 PM

在PHP中捕获和处理自定义异常的方法:继承Exception类创建自定义异常。使用throw关键字抛出自定义异常。使用try、catch和finally块捕获和处理异常。

Java中如何自定义异常? Java中如何自定义异常? Apr 12, 2024 am 09:06 AM

Java中创建自定义异常可提高应用程序健壮性。它需要:创建自定义异常类,继承自Exception或RuntimeException。抛出自定义异常,类似于抛出常规异常。在调用方法时捕获自定义异常,以获得更具信息性的错误消息。

See all articles