首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

关于异常和错误的阶段总结

2012-12-19 
关于错误和异常的阶段总结当我们查看JDK时,不难发现除了Throwable类中定义了为数不多的方法外,几乎它的所

关于错误和异常的阶段总结
        当我们查看JDK时,不难发现除了Throwable类中定义了为数不多的方法外,几乎它的所有子类,无论是Error,或者是Exception都很少有方法定义,或方法重写,这间接的说明了一点——方法对于具体的错误或异常类是无关紧要的。我们往往关心的是错误或异常的名字,自己该怎么对自己的程序进行修改,看一下异常名,一目了然!
        下面是一些我的一些实例总结!
        一.Error总结
        导致错误的原因主要是我们自己的逻辑错误,或原则上的错误导致了一些不可调和的结果!
    1.栈溢出错误:在堆中不停的创建自身对象,行为就像递归调用没写结束条件一样!


    2.内存溢出,在一个循环里不停的执行相同操作,而且不释放空间,导致内存溢出错误

        上面两种错误都属于VirtualMachineError(虚拟机崩溃或用尽了它操作的资源),当然错误的类型是数不胜数的,大多数只能在处理特定问题时遇到,不过我们遇到错误的概率还是很小的,大多数情况下,我们都是和异常在打交道!
        二 异常总结
        异常分为强制异常和运行时异常,运行时异常常常由虚拟机替我们一手包办,而无需你去检测“我是不是传了一个空的引用,我的数组是不是越界啦!”这些由于疏忽难以被我们发现的问题。然而强制异常则要求我们在编译时必须对异常进行处理,至于是抛出异常还是捕获并处理异常就取决于你了!
        下面我们来看看两种方法的执行流程。

我已经处理了异常!程序运行了此段代码!net.hailei.exception.MyExceptionat net.hailei.exception.ExceptionText.study(ExceptionText.java:14)at net.hailei.exception.ExceptionText.main(ExceptionText.java:7)

       第一段代码,我并没有处理异常,而是使用thorws与throw关键字抛出异常。通过打印的代码可以得出结论:如果在方法内部抛出异常(或是在方法内部调用的其他方法抛出了异常),这个方法将在抛出异常的过程中结束!
       第二段代码,我用try{}块捕获了异常(它内部要很多捕获异常的方法),然后用catch(){}块处理了异常。通过打印的代码可以得出结论:当方法中的异常被捕获并得到处理,方法会继续向下运行!
       关于异常,我还有很多问题没有解决,诸如:具体问题中,在抛出异常与处理异常的选择问题(如何捕获异常,并给人醒目的提醒);异常链的问题;使用finaly进行清理的问题...新的问题常常伴随在你解决问题之后,让人应接不暇!

热点排行