python raise和assert的區別

來源:互聯網
上載者:User

標籤:建立   uri   print   代碼   als   /usr   將不   表達   blog   

python中raise和assert的區別一、使用raise拋出異常

python可以自動觸發異常,raise(內建函數)的定義為顯示的拋出異常,使用者可以使用raise進行判斷,顯式的引發異常,raise執行後程式將不再向下執行。

式例:

#!/usr/bin/env python# -*- coding:utf-8 -*-__author__ = ‘40kuai‘books_dict = {‘name‘:‘python‘,‘pages‘:390}key = input(‘查看屬性:‘)if key in books_dict:    print(books_dict[key])else:    raise KeyError# 當要查詢的屬性不在字典中時會觸發異常 

raise也可以使用者建立自訂的異常

#!/usr/bin/env python# -*- coding:utf-8 -*-__author__ = ‘40kuai‘class helei(Exception):  # 繼承 Exception    def __init__(self, msg):        self.message = msg    def __str__(self):  # 被print調用時執行,可以不寫        return self.messageif __name__ == ‘__main__‘:    try:        raise helei(‘我的異常‘)  # 觸發異常    except helei as e:        print(e)
二、assert使用

assert語句用於檢測某個條件運算式是否為真。assert語句又稱為Assert 陳述式,即assert認為檢測的運算式永遠為真。

斷言用來指定某一操作必須為真。也可以在指令碼執行時加上python -O 參數來跳過assert檢測。

可以使用assert False 來顯示代碼編寫未完成

 

python raise和assert的區別

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.