1. 程式人生 > >Python自定義異常

Python自定義異常

在程式中可以通過建立新的異常型別來命名自己的異常。異常類通常應該直接或間接的從Exception 類派生,例如:

>>> class MyError(Exception):
...     def __init__(self, value):
...         self.value = value
...     def __str__(self):
...         return repr(self.value)
... 
>>> try:
...     raise MyError(2*2)
... except MyError, e:
...     print 'My exception occurred, value:', e.value
... My exception occurred, value: 4 >>> raise MyError, 'oops!' Traceback (most recent call last): File "<stdin>", line 1, in ? __main__.MyError: 'oops!'

異常類中可以定義任何其它類中可以定義的東西,但是通常為了保持簡單,只在其中加入幾個屬性資訊,以供異常處理控制代碼提取。如果一個新建立的模組中需要丟擲幾種不同的錯誤時,一個通常的作法是為該模組定義一個異常基類,然後針對不同的錯誤型別派生出對應的異常子類。

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 class TransitionError(Error): """Raised when an operation attempts a state transition that's not allowed. Attributes: previous -- state at beginning of transition next -- attempted new state message -- explanation of why the specific transition is not allowed """ def __init__(self, previous, next, message): self.previous = previous self.next = next self.message = message

與標準異常相似,大多數異常的命名都以“Error結尾。

很多標準模組中都定義了自己的異常,用以報告在他們所定義的函式中可能發生的錯誤。關於類的進一步資訊請參見第 9章,“類”。

相關推薦

python定義異常,使用raise引發異常

value init tom 輸入 mar pri Coding pre lis 1.自定義異常類,自定義的異常類必須是Exception或者Error的子類! 1 #!/usr/bin/env python 2 # encoding: utf-8 3 4 cl

python定義異常和主動拋出異常

clas 如何 pri 就是 int 異常 類繼承 def try python自定義異常和主動拋出異常 #知識點:如何自定義類 class MyException(Exception): #讓MyException類繼承Excepti

python 定義異常

class CustomException(exceptions.Exception): def __init__(self, error_info): Exception.__init__(self, error_info) self.error = error_info def __s

Python定義異常及丟擲異常

1 """ 2 自定義異常 3 """ 4 class MyException(Exception): # 繼承異常類 5 def __init__(self, name, reason): 6 self.name = name 7

python定義異常和主動丟擲異常(raise)

前言 有時候python自帶異常不夠用,如同java,python也可以自定義異常,並且可以手動丟擲。注意,自定義異常只能由自己丟擲。python直譯器是不知道使用者自定義異常是什麼鬼的。 raise語句 主動丟擲異常。 格式: 主動丟擲異常終止程

Python定義異常

在程式中可以通過建立新的異常型別來命名自己的異常。異常類通常應該直接或間接的從Exception 類派生,例如: >>> class MyError(Exception): ... def __init__(self, value): ... self.value

Python----面向對象---定義異常類型

def char user ise init rec post body ... 面向對象---自定義異常類型 1 class MyException(BaseException): 2 def __init__(self, msg): 3

python通過定義異常,提前退出方法

def spot(waitByTime30,waitByTime1): try: elm = waitByTime1.until(lambda x: x.find_element_by_name("captcha")) print(elm) exc

Python定義異常與丟擲異常

# class ShortInputException(Exception): # def __init__(self,length,atleast): # super().__init__() # self.length = length #

Python定義異常

class ShortInputException(Exception): def __init__(self,length,atleast): super().__init__() self.length = length self.atle

Python:使用者定義異常

實際開發中,有時候系統提供的異常型別不能滿足開發的需求。這時候你可以通過建立一個新的異常類來擁有自己的異常。異常類繼承自 Exception 類,可以直接繼承,或者間接繼承。 1.自定義異常型別  #1.使用者自定義異常型別,只要該類繼承了Exception類即可,至於類的主題內容使用者自

python-reraise重新丟擲定義異常——如何使traceback選擇性保留?

1. 自定義異常  在python中,自定義一個異常類的方法如下: 新建一個python檔案exception.py,以後可以將該工程內的所有自定義異常類都寫到該檔案下。程式碼如下: """ 自定義異常類 """ # 引數型別異常類 class ParameterTypeE

Python Flask,捕獲異常,捕獲404錯誤,errorhandler(),定義異常處理函式

  demo.py(捕獲異常,自定義異常處理函式): # coding:utf-8 from flask import Flask app = Flask(__name__) # 捕獲404異常錯誤 @app.errorhandler(404) # 當發生404錯誤時,會被

Python基礎筆記_Day13_Python檔案讀寫IO、異常定義異常

Day13_Python檔案讀寫IO、異常、自定義異常 13.01_Python語言基礎(檔案概述)(熟練) 13.02_Python語言基礎(檔案開啟關閉)(掌握) 13.03_Python語言基礎(檔案的讀寫)(掌握) 13.04_Python語言基礎(製作檔案的備份)(掌握) 13

Python實戰之常見異常以及定義異常

異常種類 python中的異常種類非常多,每個異常專門用於處理某一項異常!!! 常用異常 AttributeError #試圖訪問一個物件沒有的屬性,比如foo.x,但是foo沒有屬性x IOError    #輸入/輸出異常;基本上是無法開啟檔案 Impor

Python高手系列:定義異常類(帶寫入日誌功能)

class MYException(Exception):    def __init__(self,Message):        Exception.__init__(self)        self.__str__=Message    def WriteLog(s

Java定義異常

trace tex logs fin rate cat java自定義異常 leg pan package cn.Douzi.Lab7_4; public class Triangle { int a, b, c; publ

Object類-try-catch-finally-throw-throws-定義異常

pre 類繼承 輸入 解決 uil pri nat check run 一.Object類 Object類是最頂端的類,其它類都是它的子類,它的方法可以被繼承.如果定義的類沒有繼承別的類,那它的直接父類就是Object.如果方法參數類型為object類型, 則調用方

定義異常

sum tom 什麽是 -c 創建 聲明 自定義 void main 一:什麽是自定義異常 自定義異常就是自己定義的異常類,也就是Exception直接或間接的子類。 二:怎麽使用自定義異常 (1)創建自定義異常類 (2)在方法中通過throw 關鍵字拋出自定義異常 (3)

異常-定義異常的實現和測試

trace message alt exc 異常 runt stack com code 1 考試成績必須在0-100之間 2 很明顯java沒有對應的異常,需要我們自己來做一個異常 3 自定義異常 4 繼承自Exception 5 繼承自RuntimeExce