黑马程序员技术交流社区

标题: 异常的处理机制 [打印本页]

作者: ﹎◇waiting﹎    时间: 2012-8-1 11:21
标题: 异常的处理机制
最近学java的异常处理有些不懂,java对异常的处理有两个方面的一个是抛出异常,一个是捕捉异常,这两个有什么异同啊,具体是怎么处理的。
作者: 杨锦    时间: 2012-8-3 20:00
   抛出异常
                使用throw关键字可以抛出一个异常对象
                抛出一个异常可以通知当前方法的调用者
  处理异常
                在运行一段有可能出现异常的代码时, 我们可以对其进行处理, 处理方式有两种
                声明: 在当前方法签名最后使用throws关键字声明有可能出现的异常, 方法中调用其他方法如果出现异常, 当前方法中断, 将异常抛出
                捕捉: 将有可能出现异常的代码放在try代码块中, 后面跟上catch代码块, 捕捉有可能出现的异常, 如果try中代码出现异常, 就会执行catch代码
作者: 王志明    时间: 2012-8-3 21:11
老毕大概是这样说的:-----------------------------------------

异常的处理原则:

        1,处理方式有两种:try 或者 throws

        2,调用到抛出异常的功能时,抛出几个,就处理几个

                一个try可以对应多个catch

        3,当有多个catch时,捕捉父类异常的catch要放到最下面

        4,在catch块内,需要定义针对性的处理方式,不要简单的定义         printStackTrace 输出语句,也不要不写

                当捕获到的异常在本方法内处理不了时,可以继续在catch块中抛出

                try {

                        throw new AException();

                }

                catch (AException e) {

                        // 向外抛出,不进行处理

                        throw e;

                }


                如果该异常处理不了,但并不属于该功能出现的异常,可以将异常转换后,再抛出和该功能相关的异常

                try {

                        throw new AException();

                }

                catch (AException e) {

                        // 对AException进行转换后抛出

                        throw new BException();

                }



                如果异常可以处理,在处理后还需要将异常产生的和本功能相关的问题提供出去,

                让调用者知道并处理,具体方式为,捕获异常并处理后,再转换为新的异常并抛出

                try {

                        throw new AException();

                }

                catch (AException e) {

                        // 对AException处理。。。

                        // 对AException进行转换后抛出

                        throw new BException();

                }







欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2