- WPF專業(yè)編程指南
- 李應(yīng)保著
- 393字
- 2020-03-27 13:36:58
1.8 應(yīng)用程序的異常處理
現(xiàn)代軟件工程有一個(gè)基本的出錯(cuò)處理原則:就近處理程序異常。比如說,你有如下Class A和Class B兩段程序:
public Class A { //... protected float Divide( float x, float y ) { float z = x/y; return z; } } public Class B: A { //... public void Calc() { float[] x={100.2, 22.5,.....}; float[] y =( 500.0, 2.5,....}; for( int i = 0; i < x.Length; i++ ) { z= divide( y[i],x[i]); //... } } }
這兩段程序在正常的情況下,沒什么問題,但如果Class A中的y為0,那么z=x/y就會(huì)出錯(cuò),一般情況下,我們需要把Class A中的方法Divide改為:
protected float Divide(float x, float y)
{
float z = 0;
try
{
z = y / x;
}
catch
{
//處理異常
}
return z;
}
即我們需要在最可能出現(xiàn)異常的地方加上try{} catch{} ,從而對(duì)程序異常加以處理。 這一原則說起來簡單,做起來難,一旦有一個(gè)地方?jīng)]有對(duì)異常進(jìn)行適當(dāng)?shù)奶幚恚赡軙?huì)導(dǎo)致整個(gè)軟件,甚至整個(gè)操作系統(tǒng)的崩潰。WPF的Application類中有一個(gè)事件:DispatcherUnhandledException,這個(gè)事件在應(yīng)用程序未對(duì)其中的異常加以處理的情況下發(fā)生。我們可以對(duì)該事件進(jìn)行處理,從而為應(yīng)用程序把好最后的大門:
protected override void OnStartup(StartupEventArgs e) { ... this.DispatcherUnhandledException += new System.Windows.Threading. DispatcherUnhandledExceptionEventHandler( App_DispatcherUnhandledException); } void App_DispatcherUnhandledException(object sender, System.Windows.Threading. DispatcherUnhandledExceptionEventArgs e) { //對(duì)程序異常進(jìn)行處理 }
推薦閱讀
- Splunk 7 Essentials(Third Edition)
- 腦動(dòng)力:Linux指令速查效率手冊(cè)
- Word 2000、Excel 2000、PowerPoint 2000上機(jī)指導(dǎo)與練習(xí)
- 3D Printing with RepRap Cookbook
- Dreamweaver CS3網(wǎng)頁設(shè)計(jì)50例
- TIBCO Spotfire:A Comprehensive Primer(Second Edition)
- 西門子S7-200 SMART PLC實(shí)例指導(dǎo)學(xué)與用
- PyTorch Deep Learning Hands-On
- 大學(xué)計(jì)算機(jī)應(yīng)用基礎(chǔ)
- 人工智能趣味入門:光環(huán)板程序設(shè)計(jì)
- 突破,Objective-C開發(fā)速學(xué)手冊(cè)
- Visual FoxPro程序設(shè)計(jì)
- Silverlight 2完美征程
- Mastering MongoDB 3.x
- 基于RPA技術(shù)財(cái)務(wù)機(jī)器人的應(yīng)用與研究