找到 10786 篇文章 關於 Python

如何獲取 Python 異常文字?

Rajendra Dharmkar
更新於 2019-09-26 20:03:49

970 次瀏覽

如果 Python 程式碼丟擲異常,我們可以捕獲它並列印型別、錯誤訊息、回溯,並獲取有關異常發生位置(Python 指令碼中的檔名和行號)的資訊。我們可以找到錯誤的型別、值、回溯引數。ErrorType 提供了已發生異常的型別;value 包含錯誤訊息;traceback 包含堆疊快照以及有關錯誤訊息的許多其他資訊細節。sys.exc_info() 函式返回這三個屬性的元組,並且 raise 語句具有接受這三個部分的三引數形式。在示例中獲取異常型別、檔案編號和行號... 閱讀更多

你將如何解釋 Python 中的異常是一個物件?

Rajendra Dharmkar
更新於 2019-09-26 20:04:17

173 次瀏覽

是的,在給定的程式碼中,“err”是一個異常物件。在 Python 中,一切都是物件。並且每個物件都有屬性和方法。因此,異常就像列表、函式、元組等,也是物件。所以異常也像其他物件一樣具有屬性。這些屬性可以設定和訪問如下。有一個基類異常,幾乎所有其他異常都是其子類。如果 e 是一個異常物件,則 e.args 和 e.message 是它的屬性。在當前的 Python 實現中,異常由三個部分組成:型別、值和回溯。sys 模組描述了當前的異常... 閱讀更多

如何在 Python 中處理由 except 子句丟擲的異常?

Rajendra Dharmkar
更新於 2020-02-12 11:01:09

168 次瀏覽

我們有一個場景,其中 except 子句中的程式碼本身會引發異常。在給定的程式碼中,我們可以如下處理 except 子句引發的異常。示例import sys try: a = john except: try: 4/0 except: print sys.exc_info() 輸出我們得到以下輸出"C:/Users/TutorialsPoint1/~.py" (, ZeroDivisionError('integer division or modulo by zero',), )

如何捕獲並列印 Python 異常訊息?

Rajendra Dharmkar
更新於 2020-02-12 11:02:12

2K+ 次瀏覽

Python 異常訊息可以透過以下兩種程式碼示例中所示的不同方式捕獲和列印。在第一個示例中,我們使用異常物件的 message 屬性。示例try: a = 7/0 print float(a) except BaseException as e: print e.message輸出integer division or modulo by zero在給定程式碼的情況下,我們匯入 sys 模組並使用 sys.exc_value 屬性來捕獲和列印異常訊息。示例import sys def catchEverything(): try: a = 'sequel' b = 0.8 print a + b except Exception as e: print sys.exc_value catchEverything()輸出cannot concatenate 'str' and 'float' objects

為什麼 Python 異常被命名為“Error”(例如 ZeroDivisionError、NameError、TypeError)?

Rajendra Dharmkar
更新於 2019-07-30 22:30:20

120 次瀏覽

我們看到大多數異常的名稱以單詞“error”結尾,表明它們是錯誤,這本來就是異常的含義。從狹義上講,錯誤指的是 Python 中的語法錯誤,而執行時發生的錯誤稱為異常。我們知道類在名稱中沒有“class”;類似地,變數的名稱也沒有以“variable”結尾,依此類推。因此,沒有必要要求異常的名稱以“exception”結尾。考慮一下;並非所有異常都是錯誤。SystemExit、KeyboardInterrupt、StopIteration、GeneratorExit 都是異常,而不是... 閱讀更多

如何在現代 Python 中宣告自定義異常?

Rajendra Dharmkar
更新於 2019-09-26 20:13:52

165 次瀏覽

為了覆蓋某些內容或將額外引數傳遞給異常,我們在現代 Python 中這樣做:class ValidationError(Exception): def __init__(self, message, errors): super(ValidationError, self).__init__(message) self.errors = errors這樣,我們可以將錯誤訊息字典傳遞給第二個引數,並在以後需要時獲取它。

記錄 Python 異常的最佳方法是什麼?

Rajendra Dharmkar
更新於 2020-02-12 11:03:39

348 次瀏覽

我們匯入 logging 模組,然後使用 logging.exception 方法建立 Python 異常的日誌。示例import logging try: print 'toy' + 6 except Exception as e: logging.exception("這是一個異常日誌")輸出我們得到以下輸出ERROR:root:這是一個異常日誌 Traceback (most recent call last): File "C:/Users/TutorialsPoint1/PycharmProjects/TProg/Exception handling/loggingerror1.py", line 3, in print 'toy' + 6 TypeError: cannot concatenate 'str' and 'int' objects需要注意的是,在 Python 3 中,我們必須僅在 except 部分內部呼叫 logging.exception 方法。如果我們在任何其他地方呼叫此方法,根據警報,我們可能會遇到奇怪的異常... 閱讀更多

如何在 Python 中手動丟擲/引發異常?

Rajendra Dharmkar
更新於 2020-02-12 11:04:46

193 次瀏覽

我們使用最適合我們特定問題的特定異常建構函式,而不是引發通用異常。要捕獲我們的特定異常,我們必須捕獲所有其他作為其子類的更具體的異常。我們應該引發特定的異常並處理相同的特定異常。要引發特定的異常,我們使用 raise 語句,如下所示。示例import sys try: f = float('Tutorialspoint') print f raise ValueError except Exception as err: print sys.exc_info()輸出我們得到以下輸出(, ValueError('could not convert string to float: Tutorialspoint', ), )我們甚至可以像以下示例一樣帶引數引發錯誤示例try: raise ValueError('foo', 23) except ValueError, e: ... 閱讀更多

Python 3 中是否有使用異常鏈的標準方法?

Rajendra Dharmkar
更新於 2019-09-27 10:47:31

232 次瀏覽

在處理一個異常“A”的過程中,可能會發生另一個異常“B”。在 Python 2.0 版本中,如果發生這種情況,異常 B 會向外傳播,而異常 A 會丟失。為了除錯問題,瞭解這兩種異常很有用。有時,異常處理程式有意重新引發異常很有用,無論是為了提供額外的資訊還是將異常轉換為另一種型別。__cause__ 屬性提供了一種記錄異常的直接原因的明確方法。異常鏈僅在 Python 3 中可用。Python 3 具有 raise ... ... 閱讀更多

解釋 Python 中的 Try、Except 和 Else 語句。

Rajendra Dharmkar
更新於 2020-02-12 11:17:53

949 次瀏覽

在 Python 中處理異常的常用方法是使用“try-except”塊。我們甚至可以在 except 子句之後包含 else 子句。如果 try 語句中沒有異常,則執行 else 塊中的語句。如果並且只有當控制流從 try 子句末尾流出時,才會執行可選的 else 子句,但在發生異常或執行 return、continue 或 break 語句的情況下除外。示例給定的程式碼可以重寫如下a = [11, 8, 9, 2] try: foo = a[3] except: print "索引超出範圍" else: print "索引正常... 閱讀更多

廣告