C 中異常處理與if判斷的問題

2021-06-20 03:16:02 字數 669 閱讀 8795

異常情況也就是對情況是否異常做出的判斷,那麼異常處理和if判斷語句有什麼區別呢?各有什麼好處?

if-else 方式的好處在於更貼近與邏輯思維,效能優於exception。相對於exception,其缺點是,不適合oop,語義不明顯,不易於錯誤錯誤跟蹤或錯誤提示較少,並且型別比較單一。exception方法的好處在於是業務邏輯和異常處理分離(**相對清晰),try中處理業務,catch中處理異常情況。在api設計中,可以設計exception handler來處理異常,使得層次分明。同時,更好的oop的封裝和多型性。缺點在於效能相對差。但是對於大型專案的話用exception的方式無疑是最佳的。

以上為套話,下面說說我個人的理解。

在c++中,異常是以物件的形式存在的,所以異常有oop的優點。在我看來,異常優於if在於:異常是中立的。也就是說異常的throw和catch是分離的,這樣的好處在於可以用不同的處理方式來處理通乙個異常。舉個例子,比如你去面試,有3個面試官面你。把你當做乙個類my,3個面試官分別是類a,b,c。這時候你throw出了一句話,三個面試官接收到這句話,但是對於這句話,不同的面試官有不同的理解,a覺得這句話語法有問題,b覺得時間效率太低,c覺得用到的記憶體空間太大。這個例子說明了exception的好處了吧,不管多少面試官,都可以根據他們自己的方式來處理,體現了oop的優點:封裝,多型,適合大型專案,模組化……

c 的if判斷與異常處理

判斷閏年 閏年也就是二月份有29天,普通閏年 bai能被4整除但du不能被100整除,世紀閏年 能被400整除的為世紀閏年。console.writeline 請輸入閏年 int year convert.toint32 console.readline 三目運算子 資料型別 變數 表示式1?表示式...

C與C 中的異常處理 3

c 異常處理的基本語法和語義 這次,我來概述標準c 異常處理的基本語法和語義。順便,我會將它和前兩次提到的技術進行比較。在本文及以後,我將標準c 異常處理簡稱為eh,將微軟的方法稱為seh。1.1 基本語法和語義 eh引入了3個新的c 語言關鍵字 l catch l throw l try 異常通過...

C 中的異常處理

在program.cs中新增如下 之後整個應用程式都不需要額外處理異常了。所以的異常都會在這裡處理 補充 還需要考慮沒有檔案的寫許可權,catch unauthorizedacces ception ex access to the path d chucklu git edenred lisa 5...