日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Atitit.异常处理 嵌套  冗长的解决方案

發布時間:2023/12/9 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Atitit.异常处理 嵌套  冗长的解决方案 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Atitit.異常處理 嵌套??冗長的解決方案

?

?

?

1. 異常處理的需要改進的地方1

2. +異常設計的初衷是,?在程序中出現錯誤時,?由程序自己處理錯誤,?盡量不要以exit(0)這種粗暴的方式中止程序.?1

3. 正常流程和異常流程的分離。2

4. “是藥三分毒”, 任何事物有缺點,異常也是2

5. 共存取長補短,協同使用2

6. Solu:事件化處理3

7. ref3

?

1.?異常處理的需要改進的地方

?

為了表述方便,下面將主調函數稱為“父函數”,被調函數稱為“子函數”,以“祖”、“父”、“子”、“孫”等來形容函數之間的調用關系。?

一個父函數為什么要調用子函數?因為它知道子函數可以實現某種功能,但父函數根本就不關心子函數是如何實現的,子函數只需向父函數報告結果成功與否。誰知這子函數又調用了孫函數,而這孫函數拋出了一個異常。?
那么這個異常該由誰來處理呢?難道要它的祖函數來處理嗎?根本不可能。祖函數根本就不知道孫函數是個什么東西,甚至根本不知道有這么一個孫函數的存在,你讓它如何去處理這個異常??
一個父函數既然調用了子函數,就應該對這個子函數的行為負全部責任,絕不能把子函數造成的結果交給祖函數處理。所以,處理這個異常的只能是該函數的直接調用者,絕不可越級。?

異常處理機制的引入,完全破壞了這個原則。于是,一個父函數,它不但必須了解子函數的行為,還必須了解孫函數、曾孫函數、玄孫函數的種種行為。簡直就是不可能的。

?

2.?+異常設計的初衷是,?在程序中出現錯誤時,?由程序自己處理錯誤,?盡量不要以exit(0)這種粗暴的方式中止程序.?

作者::??★(attilax)>>>???綽號:老哇的爪子??全名::Attilax?Akbar?Al?Rapanui?阿提拉克斯?阿克巴?阿爾?拉帕努伊??漢字名:艾龍,??EMAIL:1466519819@qq.com

轉載請注明來源:?http://blog.csdn.net/attilax

?

3.?正常流程和異常流程的分離。

另外,(蕭筱雨)同志說:C()拋出的異常,應該在B()中處理,即使不好處理,也要轉化成B()的異常拋出。?
既然如此,那請問這種處理方法與用返回值逐層返回相比,有什么優點??

優點我已經說了,那就是正常流程和異常流程的分離。?

?

4.?“是藥三分毒”,?任何事物有缺點,異常也是

藥可治病,也可致病,說的就是事物矛盾的兩重性

。因為藥有毒而否認藥的價值從而不用它,這達不到治病的目的。矛盾的兩重性還告訴我們,對事物進行完全肯定或者否定通常是不正確的,因為還存在著一個科學運用的問題

?

事物的存在都有其存在的道理,任何事物都是矛盾的統一體,C++中的異常處理也不例外。?

由于人們的立場或者視野不同,對于同一事物的看法往往不會是完全相同的,有時甚至會完全相反。由此,就會產生爭論

?

5.?共存取長補短,協同使用

“是藥三分毒”,藥可治病,也可致病,說的就是事物矛盾的兩重性。因為藥有毒而否認藥的價值從而不用它,這達不到治病的目的。矛盾的兩重性還告訴我們,對事物進行完全肯定或者否定通常是不正確的,因為還存在著一個科學運用的問題

?

其實C++中的異常處理只是另一種形式的錯誤處理方式,和傳統的錯誤處理方式并不排斥,他們是一種“共存”的關系。只是因為在某些方面或者某些時候,使用異常處理方式比傳統的錯誤處理方式更具優越性,所以異常處理才有了使用的必要,它的存在也才是合理的。?

?

才不會因噎而廢食,因為異常處理存在著使用的局限性就否認其價值,才能知道什么情況下使用異常處理比較合適,什么情況下使用異常處理方式和傳統錯誤方式都可以,而什么情況下最好不要使用異常處理,等等。?

?

最后的建議就是:明智地使用異常處理。

?

?

6.?冗長cde

?

orm.callbackFun=function(data)

{

try{

??processJavaEx_V2q315(data);

???}catch(e)

???{

?

if(catchEx(e,"com.attilax.user.NotLoginEx"))

??{

?

logx("not login");

//window.location=;

return;

//

??}

??

???}

???

??????var json=str2json(data);

?

???var obj=json[0];

???var fm=new AForm()

???fm.bind(obj);

???

};

?

7.?Solu:事件化處理

?

8.?ref

?

改進異常處理的6條建議 - Dancen的專欄 - 博客頻道 - CSDN.NET.html

總結

以上是生活随笔為你收集整理的Atitit.异常处理 嵌套  冗长的解决方案的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。