1. 程式人生 > >python異常處理---讀書筆記(1)

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與硬件相關子系統讀書筆記1android 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高階程式設計讀書筆記11章 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