TMD 到底什么是异常
程序按照预期的流程运行..正常态
出现未预计到的情况..比如网线断了gddg...文件打开失败...
这个时候 程序是继续执行 还是 其他的选择 或者 退出app ....
实际的情况是 有可能可以恢复,从业务角度出发..我可以重新试图连接...可以重新打开文件或者换一个文件 或者重新创建一个新的文件....
只要不是致命的问题..通常是可以恢复的...没必要退出app...
如果你不捕获 网络断开或者文件无法打开的 异常 ...那么为什么程序退出了呢...因为你没有告诉你的程序 如果出错了应该怎么办...sun 规避风险,你出错了,可能下一步要错误的扣除你工资,为了解除这种不确定执行的巨大风险...那么就把你app shutdown了....
如果你有catch 对于程序来说 你有防备 出现异常的准备...那么真到了异常 那么就看你异常的处理流程 是否奏效....
异常体系....瞎扯淡...就是几个异常类的继承关系(虚拟机内部异常,用户定义异常 ...).....还能有什么 .
无非是 根据不同的出错类型来 包装异常...给这个这种类型的异常 或者 这类问题取一个名字....
当你没看堆栈信息的时候大概可以 判断一下 问题再那里而已.....
异常来跳转 程序是因为 无法预期异常后下步该如何执行 所以跳转...
异常是比较消耗系统资源的.
.net 为什么没有主动要求你 抛出异常....
因为.net的主要架构师 再设计.net时候看到了 很多程序员 一层一层的抛出异常只在最底层 main中截获异常....
那么大量的函数都是 throws 其实根本无意义....所以他再设计的时候就没有采取和java 相同的方式 .