欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python錯誤的處理方法

 更新時間:2020年06月23日 11:40:04   作者:認真對待世界的小白  
這篇文章主要介紹了Python錯誤的處理方法,文中代碼非常詳細,幫助大家更好的理解和學習,感興趣的朋友可以了解下

異常的捕獲與處理

什么是錯誤

簡而言之:還沒運行,在語法解析的時候,就發(fā)現(xiàn)語法存在問題,這個時候就是錯誤。

什么是異常

簡而言之:代碼寫好之后,無明顯語法錯誤(這個時候,編輯器不知道有錯,語法解析時也不知道有錯),但是運行的時候,會發(fā)生錯誤,這個時候稱之為異常。

什么是警告

import warnings

def fxn():
  warnings.warn("deprecated", DeprecationWarning)

異常怎么處理

異常的處理形式如下:

try:
  你要做的可能會發(fā)生異常的事
except 可能會發(fā)生的異常:
  發(fā)生異常之后要做的事
except 可能會發(fā)生的異常2:
  發(fā)生異常之后要做的事2
finally:
  最終要做的事情

比如下面的代碼:

try:
  print(10/0)
except ZeroDivisionError:
  print("除數(shù)不能為0")

這個時候再次運行,就不會再出現(xiàn)異常

在平時的開發(fā)中,也會使用預定義清理的操作,來避免因為異常而導致程序奔潰,比如在進行IO操作的時候,可以使用:

with open("myfile.txt") as f:
  for line in f:
    print(line, end="")

這樣一旦運行時發(fā)生異常,程序會自動幫你關閉文件,避免整個程序奔潰

自定義異常與異常的拋出

雖然python中提供了非常多的內(nèi)置異常類,但是,在平時開發(fā)中,針對特定的業(yè)務,可能需要自定義異常,此時怎么辦?

通過自定義繼承Exception類的類,可以實現(xiàn)異常的自定義

class MyException(Exception):
  def __init__(self, parameter):
    err = '非法入?yún)0},分母不能為0'.format(parameter)
    Exception.__init__(self, err)
    self.parameter = parameter

當我們代碼中碰到某種特殊業(yè)務情況,需要向調(diào)用方拋出自定義異常,可以使用 raise 關鍵字

from chapter12.my_exception import MyException

def my_fun(x):
  if x == 0:
    raise MyException(x)
  return 12/x

print(my_fun(-12))

我們在捕獲異常之后,也可以直接將異常拋出,此時直接使用 raise 關鍵字即可

def my_func():
  try:
    print(10 / 0)
  except ZeroDivisionError:
    print("除數(shù)不能為0")
    # 此處直接將捕獲的異常拋出
    raise

單元測試

什么是單元測試

  • 單元測試(英語:Unit Testing)又稱為模塊測試,是針對程序模塊(軟件設計的最小單位)來進行正確性檢驗的測試工作。程序單元是應用的最小可測試部件。在過程化編程中,一個單元就是單個程序、函數(shù)、過程等;對于面向?qū)ο缶幊?,最小單元就是方法,包括基類(超類)、抽象類、或者派生類(子類)中的方法?/li>
  • 簡而言之:就是寫一段代碼,用來驗證另一段代碼在特定情況下的正確性

單元測試的好處與“壞處”

  • 好處:減少bug、提高代碼質(zhì)量、可以放心重構(在未來修改實現(xiàn)的時候,可以保證代碼的行為仍舊是正確的)
  • "壞處":占用開發(fā)時間,尤其是在起步階段

在python中,如何編寫單元測試

1、新建python文件,編寫具體業(yè)務代碼

class MyTest():
  def my_add(self, a, b):
    return a + b

2、右鍵類名,選擇Go TO ==》test,或者直接 ctrl+shift +t

3、填寫好相應的模塊名及測試類名,點擊ok,此時pycharm會幫我們自動創(chuàng)建測試模塊及類

4、編寫測試代碼,并執(zhí)行單元測試

import unittest
from unittest import TestCase
from test import MyTest

class TestMyTest(TestCase):
def test_add(self):
  s= MyTest()
  self.assertEqual(s.my_add(1,5),6)

if __name__ == "__main__":
unittest.main()

以上就是Python錯誤的處理方法的詳細內(nèi)容,更多關于Python錯誤處理的資料請關注腳本之家其它相關文章!

相關文章

  • opencv python 對指針儀表讀數(shù)識別的兩種方式

    opencv python 對指針儀表讀數(shù)識別的兩種方式

    這篇文章主要介紹了opencv python 對指針儀表讀數(shù)識別的兩種方式,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-01-01
  • Python常用斷言函數(shù)實例匯總

    Python常用斷言函數(shù)實例匯總

    這篇文章主要介紹了Python常用斷言函數(shù)實例匯總,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-11-11
  • docker django無法訪問redis容器的解決方法

    docker django無法訪問redis容器的解決方法

    今天小編就為大家分享一篇docker django無法訪問redis容器的解決方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-08-08
  • Python 多繼承中的一個詭異現(xiàn)象 既是 Father又是grandfather

    Python 多繼承中的一個詭異現(xiàn)象 既是 Father又是grandfather

    我們知道,在面向?qū)ο缶幊汤锩妫^承是一個很重要的概念。子類可以使用父類的方法和屬性,接下來小編將用舉例的方式為大家講解Python 多繼承中的一個詭異現(xiàn)象 其即是爸爸又是爺爺?shù)钠孑猬F(xiàn)象,感興趣的小伙伴可以看下面文章具體了解
    2021-09-09
  • python pycharm最新版本激活碼(永久有效)附python安裝教程

    python pycharm最新版本激活碼(永久有效)附python安裝教程

    PyCharm是一個多功能的集成開發(fā)環(huán)境,只需要在pycharm中創(chuàng)建python file就運行python,并且pycharm內(nèi)置完備的功能,這篇文章給大家介紹python pycharm激活碼最新版,需要的朋友跟隨小編一起看看吧
    2020-01-01
  • 解決Django Haystack全文檢索為空的問題

    解決Django Haystack全文檢索為空的問題

    這篇文章主要介紹了解決Django Haystack全文檢索為空的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-05-05
  • pytorch模型轉(zhuǎn)換為onnx可視化(使用netron)

    pytorch模型轉(zhuǎn)換為onnx可視化(使用netron)

    netron 是一個非常好用的網(wǎng)絡結(jié)構可視化工具,但是netron對pytorch模型的支持還不成熟,這篇文章主要介紹了pytorch模型轉(zhuǎn)換為onnx,并使用netron可視化,需要的朋友可以參考下
    2023-05-05
  • Python爬蟲實現(xiàn)抓取電影網(wǎng)站信息并入庫

    Python爬蟲實現(xiàn)抓取電影網(wǎng)站信息并入庫

    本文主要介紹了利用Python爬蟲實現(xiàn)抓取電影網(wǎng)站信息的功能,并將抓取到的信息入庫。文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起了解一下
    2022-02-02
  • 詳細整理python 字符串(str)與列表(list)以及數(shù)組(array)之間的轉(zhuǎn)換方法

    詳細整理python 字符串(str)與列表(list)以及數(shù)組(array)之間的轉(zhuǎn)換方法

    這篇文章主要介紹了詳細整理python 字符串(str)與列表(list)以及數(shù)組(array)之間的轉(zhuǎn)換方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-08-08
  • 一文帶你深入了解Python中的二次移動平均法

    一文帶你深入了解Python中的二次移動平均法

    二次移動平均法,也稱為指數(shù)加權移動平均法,是一種用于平滑時間序列數(shù)據(jù)的算法。這篇文章主要通過示例來和大家聊聊二次移動平均法的使用,需要的可以了解一下
    2023-02-02

最新評論