首頁 後端開發 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

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆樹的耳語 - 如何解鎖抓鉤
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++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教學
1670
14
CakePHP 教程
1428
52
Laravel 教程
1329
25
PHP教程
1274
29
C# 教程
1256
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