1、對檔案的分類
(1)文字檔案:每個位元組都是有效的可顯示的ascii碼 ,getline() , >>
(2)二進位制檔案:位元組是連續的,不能用vi , more檢視檔案內容,read按位元組數讀取 , write
100 是整數的100,佔4個位元組
「100」是字元陣列,佔3個位元組
2、異常
(1)人為錯誤:由於程式設計師編碼不當
客觀錯誤:不能避免的錯誤
(2)通過返回值判斷程式的錯誤情況,對呼叫者的要求高,要寫if()else()判斷,而且對於返回值的含義要非常的清楚
所以c++中提供了異常處理機制
3 異常的工作原理:
1) 程式設計師寫的**在出現意外的地方自動產生乙個異常,然後丟擲乙個異常物件。
2) 物件被傳遞到負責異常處理的地方。
throw 1; //丟擲異常,讓呼叫者處理
3) 由負責異常處理的**進行統一的異常處理。 try{}catch(){}
4) 異常物件包含有意外發生的詳細資訊。
4 異常**的格式:
丟擲: throw 異常名字;
處理: ppt368
trycatch( 異常1 int
) catch( 異常2 const
char*)
程式正常的時候,catch塊什麼也不做,當出現異常的時候,程式從產生異常的地方跳到catch塊中
異常處理完畢之後,不會回到發生異常的地方。
用try{}catch(){}處理異常是一種強制手段,出現異常,程序結束
catch()中的異常型別如果與丟擲的異常型別不一致,則捕獲不到
5 每個catch只能處理一種型別的異常,catch塊會依次執行。
6 catch(...)
可以捕獲任意型別的異常,但是它不能判斷是什麼型別的異常,一般把它放在最後乙個catch塊。
但這種捕獲沒有針對性
7 異常的傳播特性:
層級傳播:異常會逐層丟擲
產生異常之後,程式立即跳轉到最近的一層捕獲異常的語句,如果當前沒有捕獲語句,或者沒有匹配的catch塊,那麼程式會跳出當前的函式回到呼叫的地方。
如果向上跳到了main函式,還是沒有處理異常,程式就會終止程序。
8、封裝異常(1)使用字串描述異常
(2)制定異常號 error no.
(3)disp();
當捕獲的異常存在繼承關係的時候,要先捕獲子類異常,再捕獲父類異常
9、內聯類
把乙個類寫到另乙個類的內部
異常一般會做成內聯類 a::exp ,靠字首制定自己的命名空間
內聯類,private修飾只能在本來中使用,對外是隱藏的,只有public 修飾的才能在外面使用
10、異常總結
(1)檢查錯誤的一種手段
(2)可以用簡單資料型別定義,還可以自定義型別
(3)產生 throw e; 異常物件
處理 try{}catch(異常型別){} --- 異常型別要與throw丟擲的一樣
(4)傳播
11、銀行專案 --- 物件導向
需求分析的時候,要畫用力圖
biz object 完成業務邏輯
value object 運算元據(account)
menu 收集使用者資訊,使用者選擇的業務
biz 針對某項業務收集資訊
da 提供檔案訪問服務
account 儲存資料
c day14 異常處理。i o操作
異常程式 錯誤的時候產生的一種錯誤,在其他語言中,如python,在程式執行時如果有錯誤的話就會丟擲異常,控制台上會爆出紅色的錯誤資訊,而c 沒有,只是將退出狀態碼設定為不是0,代表程式不是正常退出,這就使我們追蹤bug有一定的影響 當我們覺得程式可能在哪個 塊上會出現異常的時候可以用try來對異常...
Perl 學習筆記 14
system是呼叫shell的最簡單的方法。例如 system ls l home system date exec是 呼叫後不用管 的system。使用 env獲得環境變數。例如 env home rootbeer bin env path delete env my make result sy...
Python學習筆記 14
本節主要有 tips 如果不想改變原資料,傳遞引數時盡量用其副本 函式也是乙個物件 物件是記憶體中專門用來儲存資料的一塊區域 一切皆物件 函式的引數 defrt a print zzzz a rt 3 def sum a,b,c print a b c sum 4,5,8 定義形參時可以指定默值,沒...