黑马程序员_java异常<三>

---------------------- <a href="http://edu.csdn.net"target="blank">ASP.Net+Android+IOS开发</a>、<a href="http://edu.csdn.net"target="blank">.Net培训</a>、期待与您交流! ----------------------


1,异常体系的根类是:Throwable

       Throwable

        |--Error:重大的问题,我们处理不了。也不需要编写代码处理。比如说内存溢出。

        |--Exception:一般性的错误,是需要我们编写代码进行处理的。

            |--RuntimeException:运行时异常,这个我们也不需要处理。

                               其实就是为了让他在运行时出问题,然后我们回来修改代码。

2, 异常有两种:

        编译时被检测异常:

           该异常在编译时,如果没有处理(没有抛也没有try),编译失败。

           该异常被标识,代表这可以被处理。

        运行时异常(编译时不检测)

           在编译时,不需要处理,编译器不检查。

           该异常的发生,建议不处理,让程序停止。需要对代码进行修正。

3,异常体系的特点:

        异常体系中的所有类及其子类对象都具备可抛性。也就是说可以被throwthrows关键字所操作。

4,main里面编写代码进行处理,交给jvm自己进行处理,采用的是jvm的默认处理方式。相当于调用了异常对象的printStackTrace()方法。

5,Throwable类:

        getMessage():获取异常信息,返回字符串。

        toString():获取异常类名和异常信息,返回字符串。

        printStackTrace():获取异常类名和异常信息,以及异常出现在程序中的位置。返回值void

6,异常的处理·

      try...catch...finally

        基本格式:

            try  {

               可能出现异常的代码

            }   catch(异常对象) {  

               异常处理代码

            }  finally {

               释放资源

            }

       

        变形格式:

            try...catch

            try...catch...catch...//当有多个异常时最大的异常要放在最后。

    try...catch...catch...finally

 7,多个异常同时被捕获的时候,原则:  先小的,后大的。

finally:永远被执行,除非退出jvmSystem.exit(0);它其中的代码永远被执行。

特殊情况:在执行它之前jvm退出。System.exit(0);finalize:Object类中的一个方法,是于垃圾回收器调用的方式;catch中有return语句,会在return前执行finally里面的代码。

8,ExceptionRuntimeException的区别

        Exception:一般性的错误,是需要我们编写代码进行处理的。   

        RuntimeException(RuntimeException的子类)运行时异常,这个我们也不需要处理, 其实就是为了让他在运行时出问题,然后我们回来修改代码。

在用throws抛出一个的时候,如果这个异常是属于Exception的体系的时候,我们在调用的地方必须进行处理或者继续抛出。

9,   自定义异常: 定义类继承Exception或者RuntimeException

       a, 让该自定义类具备可抛性;b,让该类具备操作异常的共性方法。

        class MyExcepiton extends Exception {

            MyExcepiton(){}

     MyExcepiton(Stringmessage)  {

                super(message);

            }

        }

        class MyException extends RuntimeException {

            MyExcepiton(){}

            MyExcepiton(String message) {

                super(message);

            }

        }

10,throwsthrow:throws的时候可以没有throwthrow的时候,如果throw抛的异常是Exception体系,那么必须有throws在方法上声明。 throws用于方法的声明上,其后跟的是异常类名,后面可以跟多个异常类,之间用逗号隔开;throw用于方法体中,其后跟的是一个异常对象名。

---------------------- <a href="http://edu.csdn.net"target="blank">ASP.Net+Android+IOS开发</a>、<a href="http://edu.csdn.net"target="blank">.Net培训</a>、期待与您交流! ----------------------

详细请查看:<a href="http://edu.csdn.net" target="blank">http://edu.csdn.net</a>


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值