VR基础26-控制台编程 异常.pdfVIP

  • 2
  • 0
  • 约1.74千字
  • 约 2页
  • 2021-01-27 发布于山东
  • 举报
异常的概念 异常实际上是程序中错误导致中断了正常的指令流的一种事件.也叫例外机制。 我们以三种对代码不一样的处理方式来看一看异常的优点: 没有处理错误的程序: read-file { openTheFile; determine its size; allocate that much memory; closeTheFile; } 以常规方法处理错误 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; 观察前面的程序你会发现大部分精力花在出错处理上了. 只把能够想到的错误考虑到,对以外的情况无法处理 程序可读性差 出错返回信息量太少 用异常的形式处理错误 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;} //其它未考虑到的错误 综合上面的说法和传统的方法比较异常的优点: 1.把错误代码从常规代码中分离出来 2.把错误传播给调用堆栈 3. 按错误类型和错误差别分组 4. 系统提供了对于一些无法预测的错误的捕获和处理 5. 克服了传统方法的错误信息有限的问题 异常的使用场景 什么情况下使用例外机制? 1.当方法因为自身无法控制的原因而不能完成其任务文件不存在,网络连接无法建立…… 2.处理在方法、类库、类中抛出的异常,如FileInputStream.read 产生IOException 3.在大的项目中采用统一的方式处理例外时 如编写一个文字处理器 4.例外应该是不经常发生但却可能发生的故障 一定发生的事件不应该用例外机制来处理 5.例外处理用于使系统从故障中恢复 提示信息/不产生无效的结果/释放资源 注意事项: 1.不同的例外处理策略 关键性应用(处理所有例外) 实验软件(可以忽略许多例外) 2.终止程序会导致资源泄漏,利用例外处理释放资源 3.尽可能近地处理例外,这样程序清晰易读 4.能在局部处理的错误不要使用例外机制,例外机制的处理比正常处理效率低。 示例: 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); } } }

文档评论(0)

1亿VIP精品文档

相关文档