什么是Java异常?

来源:互联网 发布:苹果电脑炒股软件 编辑:程序博客网 时间:2024/05/20 01:10

一般来说,,最创建的错误有程序进入死循环或内存泄漏等。这种情况下,程序运行时无法解决,只能通过其他类进行干预。Java对应的Error类(一般碰到这个就完了,程序员一般解决不了),Exception类(这个程序员可以通过其他角色进行干预,通过抛出异常可以保证之后的程序的运行,程序员可以通过其他角色干预来调成程序的运行方向,是程序继续运行,直至正常结束)。

 

Error对象表示一个程序错误,指的是底层的,低级的,不可恢复的错误。此时程序会退出,因为已经失去了程序的运行环境。

 

Exception对象是我们可以处理了,因为当它出现时程序的运行环境还在,程序可以继续运

行。Exception对象有两个子类:RuntimeException和非RuntimeException,成为“未检查异

常”和 “已检查异常”,其实在Exception中,所有的未检查异常都是已检查异常,我们只

是传达一个概念。

 

未检查异常是因为程序员没有进行必要的检查,因为他的疏忽和错误而引起的异常。一定是属于虚拟机内部的异常(比如空指针)。应对未检查异常就是养成良好的检查习惯。已检查异常是不可避免的,对于已检查异常必须实现定义好应对的方法。已检查异常肯定跨越出了虚拟机的范围。(比如“未找到文件”)

 

如何处理已检查异常(对于所有的已检查异常都要进行处理):

首先了解异常形成的机制:

当一个方法中有一条语句出现了异常,它就会throw(抛出)一个例外对象,然后后面的语

句不会执行返回上一级方法,其上一级方法接受到了例外对象之后,有可能对这个异常进行处理,也可能将这个异常转到它的上一级。对于接收到的已检查异常有两种处理方式:throws和try方法。

注意:出错的方法有可能是JDK,也可能是程序员写的程序,无论谁写的,抛出一定用throw。

 

 

当然,编程时尽量保证少异常,尽量减少try/catch语句。

用try/catch包围的程序语句在抛出异常时,用catch截获异常。实际上,任何类都有属于自己的异常,并使用throw语句抛出异常。

 

在Java语言的异常处理中,finally块的左右就是为了保证无论出现什么情况,finally块里的语句一定会执行。由于程序内还会有return语句的出现,会出现一个问题,return出现就意味着结束对当前函数的调用并跳出这个函数体。这里需要认真记住,任何语句都要在return前执行,所以finally块的代码也会在执行return语句前执行完毕。

 

在异常处理时,还要注意以下几个问题:

1.      异常的正确捕获方法是先捕获子类,在捕获积累,如果先捕获积累的话,子类的异常将不会被捕获到。

2.      今早捕获异常,对异常的视而不见是非常不好的习惯,不利于对以后系统的维护。所以,对于异常要尽早捕获,尽早解决。


1 0
原创粉丝点击