python異常處理---讀書筆記(1)
初學python , 基本不知道什麼是異常, 不過有個東東,可以理解,比如。
<span style="font-family: Arial, Helvetica, sans-serif;">int("hello world")</span>
會出現 ValueError , 這就是異常, 因為你知道int方法是用於數字對, 我不知道其他程式怎麼樣。但是這個也許在程式設計中特別重要吧,因為不希望有錯誤了,程式就不能運轉吧。
異常通常有幾個:
valueError : 不存在值引發的異常
indexError: 越界引發的異常
TabError: 縮排引發的異常
syntaxError: 語法錯誤
這裡有詳細說明:http://www.w3cschool.cc/python/python-exceptions.html
通常用於異常的語句有:
try:
int(s)
expect ValueError:
return None
看上去try ,except 像 if ... else的節奏
try:
你的程式碼(可能會導致一個執行的錯誤)
except:
錯誤恢復程式碼
但是:ValueError 又是什麼呢?
python 特別把異常做了物件, 這個物件就是Exception ,通常我們的python是自帶了這個程式,所以ValueError就是呼叫Exception模組。
我在閱讀, <learn python the hard way> 中 讀到了raise語句, 書中也沒有介紹,百度了一下,下面是這麼說的。
raise語法格式如下:
raise[Exception[, args [, traceback]]]
語句中Exception是異常的型別(例如,NameError)引數是一個異常引數值。該引數是可選的,如果不提供,異常的引數是"None"。
最後一個引數是可選的(在實踐中很少使用),如果存在,是跟蹤異常物件。
在Python中,要想引發異常,最簡單的形式就是輸入關鍵字raise,後跟要引發的異常的名稱。異常名稱標識出具體的類:
以上的解釋, 還是無法看懂raise到底是撒意思, 看了書中的例子,似乎是使用者自定義異常,接著看。
深入理解,異常:
如: print 1
print x
traceback: X
NameError : x is not defined
於是可以:
try:
print x
except NameError:
print("沒有定義輸入x")
先深入瞭解,try except 是做什麼的?
怎麼理解,raise呢?
>>> raise IndexError
Traceback (most recent call last):
File "<pyshell#9>", line 1, in <module>
raise IndexError
IndexError
>>> raise NameError
Traceback (most recent call last):
File "<pyshell#10>", line 1, in <module>
raise NameError
NameError
丟擲異常, 第一個丟擲IndexError ,返回見上面, 還是不好理解,繼續看:
class MyException(Exception):
pass
try:
raise MyException
except MyException:
print("ok:)
顯示ok ,自定義了一個異常MyException , 可以加點料
class MyException(Exception): pass try: raise MyException , " and some addtional data" except MyException,data: print("OK") print(data)
顯示 ok, and some addtional data
發現之前介紹的raise 了, 繼續看書,回坑填一下
備註:Exception 英文,是例外的意思。
相關推薦
python異常處理---讀書筆記(1)
初學python , 基本不知道什麼是異常, 不過有個東東,可以理解,比如。<span style="font-family: Arial, Helvetica, sans-serif;">int("hello world")</span>會出
python爬蟲讀書筆記(1)
1.使用urllib2模組下載URL import urllib2 def download(url): return urllib2.urlopen(url).read() 2.捕獲異常 出現下載錯誤時,該函式能夠捕獲異常,然後返回None。 import urllib2
Python學習 讀書筆記(1)
1. 轉義字元必須 ,’\n’,來和變數分開 2. 當Python直譯器讀取原始碼時,為了讓它按UTF-8編碼讀取,檔案開頭寫上這兩行: #!/usr/bin/env python3 # -*- coding: utf-8 -*- 第一行註釋是
Python《機器學習實戰》讀書筆記(四)——樸素貝葉斯
第四章 基於概率論的分類方法:樸素貝葉斯 4-1 基於貝葉斯決策理論的分類方法 優點:在資料較小的情況下仍然有效,可以處理多類別問題 缺點:對於輸入資料的準備方式較為敏感。 適用資料型別:標稱型資料。 假設現在我們有一個數據集,它由兩類資
數據結構與算法(刺猬書)讀書筆記(1)----數組
split() ring 此外 結果 shift 即使 cnblogs 操作符 main 在JavaScript中,數組其實是一種特殊的對象,用來表示偏移量的索引是該對象的屬性,所以JavaScript的數組本質上是對象。同時這些數字索引在內部會被轉換成為字符串類型,因為J
android BSP與硬件相關子系統讀書筆記(1)android BSP移植綜述
tin 不用 googl csdn splay 編寫 app開發 意圖過濾器 trac 從linux驅動轉行至Android驅動開發大半年了,一開始就產生了一個很糾結目標和問題,就是不停的google如何porting android!這個問題得到的結果對於初出茅廬的我,感
UML精粹讀書筆記(1)
淘寶 bsp 技能 uml 這也 參考 一個 每次 現在 我決定每次讀一下書,還是來說說一些想法的好。漫畫就先算了吧,等我把火影補完再說吧。 如果什麽時候我的主站建好了的話,我會在我自己的主站上去更新。 今天終於把這本書的簡體中文版搞到手了,有幾個小插曲: 1.這本書是
PCIE協議解析 synopsys IP loopback 讀書筆記(1)
overview 沒有 發出 調試 期望 pci 附加 error edit 1 Overview Core支持單個Pcie內核的Loopback功能,該功能主要為了做芯片驗證,以及在沒有遠程接收器件的情況下完成自己的回環。同時,Core也支持有遠程接收器件的lo
線性代數及其應用 讀書筆記(1) 1.1 線性方程組
-m 線性代數 align tex center 技術 bubuko image bsp 線性代數及其應用 讀書筆記(1) 1.1 線性方程組
Python時間序列LSTM預測系列學習筆記(1)-單變數
本文是對: https://machinelearningmastery.com/time-series-forecasting-long-short-term-memory-network-python/ https://blog.csdn.net/iyangdi/article/deta
讀書筆記(1)
《沉默的藝術:意識科學基礎理論》 前言 建立量子力學的理論基礎,必須先對觀測者進行研究。 觀測者的本質是關於意識如何產生的。 意識科學中存在兩種問題:簡單問題與困難問題。 簡單問題:意識相關問題中可歸結為解釋結構與功能,或可歸結為事物間關係的問題。 困難問題:意識相關
程式碼大全 讀書筆記(1)
1. 軟體構建活動: 定義問題(problem definition) 需求分析(requirements development) 規劃構建(construction planning) 軟體架構(software architecture),或高層設計(high-level de
javascript高階程式設計讀書筆記(1)第 1章 JavaScript 簡介
第 1章 JavaScript 簡介 1.1 JavaScript 簡史 1.2 JavaScript 實現 一個完整的 JavaScript 實現應該由下列三 個不同的部分組成(見圖 1-1)。 核心(ECMAScript) 文件物件模型(DOM)
Linux核心0.11完全註釋(修正版) --讀書筆記(1)
RTFSC 閱讀0.11核心版本的原因: 適合作業系統初學者的入門學習起點 閱讀早期核心的好處: 簡化的核心程式碼,避免現有核心的複雜性,能夠透徹的說明問題 -- Leland
C和指標讀書筆記(1)
第一章程式碼 程式碼 #include<stdio.h> #include<stdlib.h> #include<string.h> #define MAX_COLS 20 /*所能處理的最大列號*/ #define MAX_INPUT 1000
《征服C指標》——讀書筆記(1)
一、指標的基本知識 示例程式碼: #include <stdio.h> int main(void) { int hoge = 5; int piyo = 10; int *hoge_p; /*輸出每個變數的地址*/
精通flink讀書筆記(1)
很多人已經用上了spark,所以人們往往有個疑問,問啥還要用flink呢? 首先我們理解flink是基於流處理,是一個真正的流處理引擎,不是一個基於微批處理的引擎。批處理在flink看來反而是一種特殊情況。 下圖是flink的結構 flink是一個分層的體系結構。fli
I.MX51 IPU讀書筆記(1)
IPU-影象處理單元 IPU是MX51的影象和視訊子模組。他完美的支援從攝像頭和顯示裝置傳過來的視訊資料流。支援的功能如下: 能和攝像頭,顯示器,圖形加速器,TV編碼器/解碼器等進行連線 影象相關的處理和操作有:感測器影象訊號處理,顯示器處
資料庫系統概念讀書筆記(1)——引言
資料庫管理系統:有一個互相關聯的資料的集合和一組用以訪問這些資料的程式組成,這個資料集合就叫做資料庫。上來就先寫上一個概念,作為這本書的主線。 1.資料庫的出現的必要性和對資料庫的要求 儘管檔案系統可以解決不少問題,但是下面的問題是檔案系統所無法解決的,如果給檔案系統加上這些
《如何閱讀一本書》讀書筆記(1)
根據閱讀計劃,完成本書的閱讀我將寫大概八篇讀書筆記,本篇是第一篇。 將第一篇閱讀的層次閱讀完畢了,大概小結一下:本篇開篇主要大致介紹了閱讀的四個層次,如下: 閱讀的四個層次: 1、基礎閱讀(Elementary Reading);2、檢視閱讀(Inspec