JUST DO IT ~

我只想当个程序员

到底什么是异常



TMD 到底什么是异常


程序按照预期的流程运行..正常态
出现未预计到的情况..比如网线断了gddg...文件打开失败...
这个时候 程序是继续执行 还是 其他的选择 或者 退出app ....

实际的情况是 有可能可以恢复,从业务角度出发..我可以重新试图连接...可以重新打开文件或者换一个文件 或者重新创建一个新的文件....
只要不是致命的问题..通常是可以恢复的...没必要退出app...

如果你不捕获 网络断开或者文件无法打开的 异常 ...那么为什么程序退出了呢...因为你没有告诉你的程序 如果出错了应该怎么办...sun 规避风险,你出错了,可能下一步要错误的扣除你工资,为了解除这种不确定执行的巨大风险...那么就把你app shutdown了....

如果你有catch 对于程序来说 你有防备 出现异常的准备...那么真到了异常 那么就看你异常的处理流程 是否奏效....

异常体系....瞎扯淡...就是几个异常类的继承关系(虚拟机内部异常,用户定义异常 ...).....还能有什么 .
无非是 根据不同的出错类型来 包装异常...给这个这种类型的异常 或者 这类问题取一个名字....
当你没看堆栈信息的时候大概可以 判断一下 问题再那里而已.....


异常来跳转 程序是因为 无法预期异常后下步该如何执行 所以跳转...
异常是比较消耗系统资源的.


.net 为什么没有主动要求你 抛出异常....
因为.net的主要架构师 再设计.net时候看到了 很多程序员 一层一层的抛出异常只在最底层  main中截获异常....
那么大量的函数都是 throws 其实根本无意义....所以他再设计的时候就没有采取和java 相同的方式 .



 




posted on 2009-10-10 01:07 小高 阅读(335) 评论(2)  编辑  收藏 所属分类: java基础DotNetException 异常处理

评论

# re: 到底什么是异常 2010-02-06 17:24 Green Sea

那么内存申请失败或除零的异常呢?.NET是怎么处理异常的?  回复  更多评论   

# re: 到底什么是异常 2010-02-06 20:27 gddg

@Green Sea

.net 异常有一篇文章介绍 是.net设计师做访谈节目时候 和java异常比较说的比较细致。
java老是抛出异常。实际程序员都不原因处理抛出到底层。。最后底层处理。 每个函数签名很不优雅。。。c#没什么特别好的方法。。所以就不抛。。你想捕获就自己在调用中间捕获。


内存申请失败和除0 都是 从最底层开始抛出异常。但是实际上,你不处理,最后都会抛到你程序的入口。
  回复  更多评论   


只有注册用户登录后才能发表评论。


网站导航:
 

导航

<2010年2月>
31123456
78910111213
14151617181920
21222324252627
28123456
78910111213

统计

常用链接

留言簿(3)

随笔分类(352)

收藏夹(19)

关注的blog

手册

搜索

积分与排名

最新评论

阅读排行榜

评论排行榜