七月婷婷在线视频综合-奇米77-奇米狠狠干-奇米久草-国内精品久久影视免费-国内精品免费视频自在线

您現(xiàn)在所在的位置:首頁 >學(xué)習(xí)資源 > Unity游戲/VR/AR入門教材 > VR開發(fā)入門教程33:控制臺(tái)編程--異常

VR開發(fā)入門教程33:控制臺(tái)編程--異常

來源:奇酷教育 發(fā)表于:

異常實(shí)際上是程序中錯(cuò)誤導(dǎo)致中斷了正常的指令流的一種事件 也叫例外機(jī)制。我們以三種對(duì)代碼不一樣的處理方式來看一看異常的優(yōu)點(diǎn):沒有處理

異常實(shí)際上是程序中錯(cuò)誤導(dǎo)致中斷了正常的指令流的一種事件.也叫例外機(jī)制。

我們以三種對(duì)代碼不一樣的處理方式來看一看異常的優(yōu)點(diǎn):
沒有處理錯(cuò)誤的程序:
 read-file {
     openTheFile;
     determine its size;
     allocate that much memory;
     closeTheFile;  
}
以常規(guī)方法處理錯(cuò)誤
openFiles;
if (theFilesOpen) {
  determine the lenth of the file;
  if (gotTheFileLength){
    allocate that much memory;
    if (gotEnoughMemory) {
       read the file into memory;
       if (readFailed) errorCode=-1;
       else errorCode=1;
    }else  errorCode=-3;
  }else errorCode=-5 ;
 }else errorCode=-5;
 
觀察前面的程序你會(huì)發(fā)現(xiàn)大部分精力花在出錯(cuò)處理上了.
只把能夠想到的錯(cuò)誤考慮到,對(duì)以外的情況無法處理
程序可讀性差
出錯(cuò)返回信息量太少
 
用異常的形式處理錯(cuò)誤
read-File;
{ try {
    openTheFile;
    determine its size;
    allocate that much memory;
    closeTheFile;
 }catch(fileopenFailed) { dosomething; }
  catch(sizeDetermineFailed) {dosomething;}
  catch(memoryAllocateFailed){ dosomething;}
  catch(readFailed){ dosomething;}
  catch(fileCloseFailed) { dosomething; }
  catch(Exception) {dosomething;}  //其它未考慮到的錯(cuò)誤
 
綜合上面的說法和傳統(tǒng)的方法比較異常的優(yōu)點(diǎn):
1.把錯(cuò)誤代碼從常規(guī)代碼中分離出來
2.把錯(cuò)誤傳播給調(diào)用堆棧
3. 按錯(cuò)誤類型和錯(cuò)誤差別分組
4. 系統(tǒng)提供了對(duì)于一些無法預(yù)測(cè)的錯(cuò)誤的捕獲和處理
5. 克服了傳統(tǒng)方法的錯(cuò)誤信息有限的問題

異常的使用場(chǎng)景

什么情況下使用例外機(jī)制?
1.當(dāng)方法因?yàn)樽陨頍o法控制的原因而不能完成其任務(wù)文件不存在,網(wǎng)絡(luò)連接無法建立……
2.處理在方法、類庫、類中拋出的異常,如FileInputStream.read產(chǎn)生IOException
3.在大的項(xiàng)目中采用統(tǒng)一的方式處理例外時(shí)
     如編寫一個(gè)文字處理器
4.例外應(yīng)該是不經(jīng)常發(fā)生但卻可能發(fā)生的故障
     一定發(fā)生的事件不應(yīng)該用例外機(jī)制來處理
5.例外處理用于使系統(tǒng)從故障中恢復(fù)
     提示信息/不產(chǎn)生無效的結(jié)果/釋放資源
 
注意事項(xiàng):
1.不同的例外處理策略
     關(guān)鍵性應(yīng)用(處理所有例外)
     實(shí)驗(yàn)軟件(可以忽略許多例外)
2.終止程序會(huì)導(dǎo)致資源泄漏,利用例外處理釋放資源
3.盡可能近地處理例外,這樣程序清晰易讀
4.能在局部處理的錯(cuò)誤不要使用例外機(jī)制,例外機(jī)制的處理比正常處理效率低。
示例:
using System;
class ExcepTest
{  
   public static void Main(String[] args)
   {  
       int b=0;
       int a;      
       try {
         a=5/b;
       }
       catch(ArithmeticException e)
       {   
         Console.WriteLine("divided by 0");
       }  
   }
}
主站蜘蛛池模板: 一区视频在线 | 一级毛片人与动免费观看 | 日本又色又爽又黄的大片 | 免费一级特黄特色大片在线观看看 | 天堂网日本 | 免费看涩涩视频网站入口 | 秋霞手机入口二日韩区 | 中文字幕亚洲综久久2021 | 精品一区二区三区在线播放 | 日韩欧美在线观看一区 | 国产在线拍揄自揄视频不卡99 | 中文欧美一级强 | 成年网站在线播放 | 污黄视频在线看 | 动漫无遮羞视频免费网站 | 人人澡人人插 | 在线观看成人影院 | 欧美乱人伦中文在线观看不卡 | 暴力调教抖s浪荡总裁受文 白洁性荡生活l六 | www.天天射| 欧美日韩视频一区二区 | 日本色片网站 | 天天舔| 羞羞视频免费网站在线看 | 高清一区二区亚洲欧美日韩 | 你懂得在线视频 | 一个人看的www播放高清 | www.瑟瑟| 一级女性生活片 | 国产黑丝袜在线 | 狂野欧美性猛交xxxx乱大交 | 亚洲一二三在线 | 中文字幕2019年中文字幕 | 亚洲精品色图 | 天天摸天天碰成人免费视频 | 亚洲三级免费观看 | 国产高清国产精品国产k | 国产高清国产精品国产k | 国产美女在线一区二区三区 | 日本深夜福利视频 | ak福利午夜在线观看 |