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異常如果錯誤發生的條件是可預知的需要用if進行處理,在錯誤發生之前預防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
發生的條件不可預知,需要用到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...