異常與網路程式設計

2022-03-28 01:37:26 字數 3110 閱讀 9579

new 和init的區別

__new__比__init__先執行,其作用是建立乙個空的類物件

作為乙個類物件:必須具有三個組成部分

所以呼叫type中的__new__來完成組裝

得到這個類物件後需要將其返回,以供__init__來使用

異常:程式中無法按照邏輯順序執行完全部**,丟擲的錯誤稱之為異常

當異常發生時,直譯器會列印異常詳細資訊,並且終止程式的執行

排查錯誤,

1.定位到錯誤發生的位置:

檢視追蹤資訊

如果**為自己寫的未呼叫任何內建模組或方法,錯誤位置在最後一行

**呼叫其他模組

內建模組則是自己的錯誤

別人寫的有可能出錯需要檢視

2.檢視異常型別

3.檢視異常的值

異常的三個組成部分

追蹤資訊

異常型別

異常的值

異常一旦發生就會終止程式,對於使用者體驗極差需要處理

異常可以由發生的時間分為兩類

1.語法檢測異常:

直譯器會在執行**前先檢測語法,通過才會執行,發生異常則不會執行任何**

語法錯誤和縮排錯誤

2.執行時異常:

已通過語法檢測,解析執行期間發生的異常

python中不同的異常可以用不同的型別去標識,乙個異常標識一種錯誤

attributeerror屬性錯誤

ioerror 輸入輸出異常,無法開啟檔案

importerror 無法引入模組或包,基本上是路徑問題或名稱錯誤

indentationerror 語法錯誤,**未對齊

indexerror 索引越界

keyerror訪問字典不存在的鍵

keyboardinterrupt ctrl+c被按下

nameerror 使用乙個未被賦予物件的變數

syntaxerror 語法錯誤

typeerror 傳入物件與要求不符合

unboundlocalerror 試圖訪問乙個還未被設定的區域性變數

valueerror傳入乙個呼叫者不期望的值

1

arithmeticerror

2assertionerror

3attributeerror

4baseexception

5buffererror

6byteswarning

7deprecationwarning

8environmenterror

9eoferror

10exception

11floatingpointerror

12futurewarning

13generatorexit

14importerror

15importwarning

16indentationerror

17indexerror

18ioerror

19keyboardinterrupt

20keyerror

21lookuperror

22memoryerror

23nameerror

24notimplementederror

25oserror

26overflowerror

27pendingdeprecationwarning

28referenceerror

29runtimeerror

30runtimewarning

31standarderror

32stopiteration

33syntaxerror

34syntaxwarning

35systemerror

36systemexit

37taberror

38typeerror

39unboundlocalerror

40unicodedecodeerror

41unicodeencodeerror

42unicodeerror

43unicodetranslateerror

44unicodewarning

45userwarning

46valueerror

47warning

48 zerodivisionerror

異常如果錯誤發生的條件是可預知的需要用if進行處理,在錯誤發生之前預防

發生的條件不可預知,需要用到try...except:錯誤發生後處理

異常處理格式有

try...except...

try...except...except...

try...except...else...

try...except...finally...

c/s架構的軟體是基於網路進行通訊的

網路的核心即一對協議,想要開發基於網路通訊的軟體,就必須遵循這些標準

網際網路協議的功能:定義計算機如何接入internet,以及接入internet的計算機通訊的標準

osi七層協議:應用層,傳輸層,網路層,網路介面層,應用層分為應用層,表示層會話層,網路介面層分為資料鏈路層,物理層

物理層功能:主要是基於電氣特性傳送高低電壓(電訊號),高電平1,低電平0

資料鏈路層:單純地電訊號0或1毫無意義,必須規定電訊號多少位一組,魅族什麼意思,

資料鏈路層的功能就是定義了電訊號的分組方式

乙太網協議:ethernet規定

一組電訊號構成乙個資料報,叫做幀

每一資料幀分成:報頭head和資料data兩部分

head包含(固定18個位元組)

資料型別,6個位元組

data包含:(最短46,最長1500位元組)

資料報的具體內容

head長度+data長度 = 最短64位元組,最長1518位元組,超過最大限制就分片傳送

head中包含的源和目標位址由來:ethernet規定接入internet的裝置都必須具備網絡卡,傳送端和接收端的位址便是指

網絡卡的位址,即mac位址

是廠商編號,後六位是流水線號

廣播:有mac位址,同一網路的兩台主機就可以通訊(一台主機通過arp協議獲取另外一台主機的mac位址)

ethernet採用最原始的方式,廣播的方式進行通訊

python異常及網路程式設計

使用if作為錯誤處理機制時,無法窮舉所有的異常情況,而且在處理異常時處理 和業務 混合在一起,嚴重影響程式的可讀性。使用raise語句自動引發異常。如果raise語句在try中,則會丟擲runtimeerror異常。如果raise在exception語句中,則會將exception中的異常丟擲。網路...

網路程式設計的異常及處理

網路程式設計不只是編寫網路 主機 程序都正常時能良好工作的程序,更重要的是客戶主機崩潰 客戶程序崩潰網路異常時怎麼處理。accept被訊號中斷 accept以及套接字上的i o可能被訊號打斷,並返回eintr作為結果,必須處理該返回值並且適當時候再次呼叫。for else connect被訊號中斷 ...

異常處理與網路協議

一 異常處理 1異常 錯誤發生的訊號,程式一旦出錯程式中沒有相應的處理機制,就會丟擲異常,終止程式 乙個異常的三部分 追蹤資訊,異常的值,異常型別,二 異常的分類 1語法異常 這類異常在程式執行之前就改正,否則程式無法執行。2邏輯異常 常見異常型別 indexerror,keyerror,attri...