1. 程式人生 > >Python(4)--異常捕獲及處理

Python(4)--異常捕獲及處理

異常

異常即非正常狀態,在Python中使用異常物件來表示異常。若程式在編譯或執行過程中發生錯誤,程式的執行過程就會發生改變,丟擲異常物件,程式流進入異常處理。如果異常物件沒有被處理或捕捉,程式就會執行回溯(Traceback)來終止程式。


捕獲異常try...except...else...finally

def sum(num1,num2):
    num3=None
    try:
        #num3 = num1/num2           #sum(2,'ssss')列印ssssssss和'+++++++++++++'
        num3=int(num1)/int(num2)    #sum(2,'ssss')列印999999999和'+++++++++++++'
    except ZeroDivisionError,ex:
        print '00000000'
    except TypeError:
        print 'ssssssss'
    except Exception,ex:
        print '99999999'
    else:
        print 'REsss'
    finally:
        print '+++++++++++++'
    return num3

#sum(2,0)
#sum(2,'ssss')
sum(2,1)


try的工作原理: 執行一個try語句時,python解析器會在當前程式流的上下文中作標記,當出現異常後,程式流能夠根據上下文的標記回到標記位,從而避免終止程式。 1、如果try語句執行發生異常,程式流跳回標記位,並向下匹配執行第一個與該異常匹配的except子句,異常處理完後,程式流就通過整個try語句(除非在處理異常時引發新的異常) 2、如果沒有找到except子句或指定同樣異常型別Exception,來捕獲所有異常,異常被遞交到上層的try,實在沒有找到時,程式將結束,並列印預設的錯誤資訊。 3、若沒有發生異常,執行else語句 4、無論發生異常與否,均執行fianlly語句

相關推薦

Python4--異常捕獲處理

異常 異常即非正常狀態,在Python中使用異常物件來表示異常。若程式在編譯或執行過程中發生錯誤,程式的執行過程就會發生改變,丟擲異常物件,程式流進入異常處理。如果異常物件沒有被處理或捕捉,程式就會執

SpringBoot全域性異常捕獲處理包括自定義異常捕獲處理

在做專案的時候需要對自定義異常做捕獲和處理,現在將程式碼記錄下來便於以後查閱。 1、全域性異常捕捉處理 @ControllerAdvice( annotations = {RestController.class} ) public class ExceptionHandlerAdv

Mysql高手系列 - 第20篇:異常捕獲處理詳解實戰經驗

Mysql系列的目標是:通過這個系列從入門到全面掌握一個高階開發所需要的全部技能。 這是Mysql系列第20篇。 環境:mysql5.7.25,cmd命令中進行演示。 程式碼中被[]包含的表示可選,|符號分開的表示可選其一。 需求背景 我們在寫儲存過程的時候,可能會出現下列一些情況: 插入的資料違反唯一約束

零基礎入門學習Python33--異常處理:你不可能總是對的2

前言 接下來我們介紹一種方法捕捉語句塊中可能出現的錯誤 知識點 異常處理 捕捉異常可以使用try/except語句。 try/except語句用來檢測try語句塊中的錯誤,從而讓except語句捕獲異常資訊並處理。 如果你不想在異常發生時結束你的程式,只需在try

Python+OpenCV學習4---影象梯度邊緣檢測

利用python學習OpenCV,個人感覺比較方便。函式的形式與C++基本相同,所以切換過來還是比較好的,對於像我這種對python不太熟練的人,使用python的整合開發環境PyCharm進行學習,

python 學習筆記4解析和字串處理

宣告:本文系本人學習python3總結,如有侵權等,請及時告知; 一、解析          1、os 模組                   Python 3 帶有一個模組叫做 os,代表“作業系統(operating system)。 匯入osmodule 

python4- 簡單練習:python實現購物車的優化

list x11 int 退出 .html htm src keyword 結算 簡單版本,鏈接如下: http://www.cnblogs.com/c-x-m/p/7819220.html 購物車程序優化題目要求: 1. 用戶退出時打印商品列表時,按以下格式

python4之字典

cat 報錯 pornhub AS clas ict hist 資源 刪除 字典的操作方式如下: info={ ‘stu1101‘:"xiaohai", ‘stu1102‘:‘liming‘, ‘stu1103‘:"heima", } 1.增加

DNS服務4Slave DNS高階特性

    為了簡化運維人員的負擔,使用Master/Slave DNS架構的情況比較好,現在我們來簡單敘述一下Master/Slaver DNS的特點              主DNS伺服器:維護所負責解析的域內解

理解OpenShift4:使用者許可權管理

理解OpenShift(1):網路之 Router 和 Route 理解OpenShift(2):網路之 DNS(域名服務) 理解OpenShift(3):網路之 SDN 理解OpenShift(4):使用者及許可權管理   OpenShift 支援 RBAC(Role Based Acc

React4 --引入圖片迴圈資料

引入圖片的方法 1.引入本地圖片 方法1: import logo from '../assets/images/1.jpg'; <img src={logo} /> 方法2: <img src={require('../assets/images/1.

CUDA學習筆記4- 簡單的影象處理

使用GPU處理影象的速度比使用CPU處理影象的速度要快很多,下面是使用GPU與使用CPU做影象處理速度的對比,對同一個影象做簡單的黑色的混色。 可以看出使用GPU處理大約需要耗時10ms左右,而使用CPU處理大約需要耗時50毫秒左右,CUDA處理影象的速度大約

springCloudF版4——zuul叢集頂層負載均衡

上一篇博文我們引入了zuul路由閘道器實現了對不同生產者服務叢集的路由轉發。不過真正系統釋出時有以下問題: 1.zuul裡的配置檔案會暴露我們所有介面的資訊,放在頂層不合適 2.畢竟落實了路由分發和過濾器功能,當介面很多的時候也是可能宕機的 其他考慮應該還有很多,我只是簡單理解了一下

【原創】大資料基礎之Spark4RDD原理程式碼解析

一 簡介 spark核心是RDD,官方文件地址:https://spark.apache.org/docs/latest/rdd-programming-guide.html#resilient-distributed-datasets-rdds官方描述如下:重點是可容錯,可並行處理 Spark r

【原創】大數據基礎之Spark4RDD原理代碼解析

sso 數據 queue running upd parallel input gettime side 一 簡介 spark核心是RDD,官方文檔地址:https://spark.apache.org/docs/latest/rdd-programming-guide.h

Mybatis學習4:MybatisPageHelper外掛和easyUI實現分頁

前言 很多專案中需要將資料庫中的所有資料分頁展示出來,這樣的技術有很多。今天我們來介紹如何使用Mybatis及其PageHelper外掛和前端easyUI實現資料庫資訊分頁展示。 正文 一,easyUI 其實我對前端js一點都不瞭解,但是為了做專案硬

Python4高階特性 總結

  Python中很多常見語法可以使程式更加簡潔易讀,這裡我們介紹5個例子:切片、迭代、列表生成器、生成器、迭代器 1.切片(slice) 切片用於取list tuple中部分元素,通過下標索引,只需標出想得到的第一個元素下標和最後一個元素 L[a:b] 從

AspectJ——切入點語法4捕獲屬性上的連線點

捕獲屬性上的連線點 AspectJ提供了get(Signature)和set(Signature)切入點的形式,來捕獲可能發生在類屬性上的任何訪問和修改。這也是AspectJ的一個比較受爭議的特性,因為它會有效地破壞類的封裝性,特別是當把被監視的屬性宣告為pr

Storm學習筆記4- Storm架構部署

文章目錄 Storm架構詳解 Storm單機部署 改寫Storm作業並提交到Storm單節點叢集執行 Storm常用命令介紹 Storm叢集部署規劃 Storm架構詳解 Storm架構   類

每日一python4python對字典按key排序和按value排序

1、首先介紹一下字典的基本用法 d = { 'Adam': 95, 'Lisa': 85, 'Bart': 59, 'Paul': 74 } print(d.keys()) print(d.values()) print(d.items()) sum = 0 for