corejava学习5(异常)

 

Exception 

 

Throwable(运行时可能碰到的任何问题的总称)

  ―――> Error(非常严重的错误,系统不要求程序员处理,也处理不了)

 ―――>Exception(从代码的角度是程序员可以处理的问题,异常,例外)

        异常是运行时概念。

       ――>UncheckedExcepiton(RuntimeException)

               程序员小心谨慎完全可以避免的异常,系统不要求程序员处理(可以不管),3/0,数组下标越界,NullPointerException,类型转换异常

――>CheckedException(已检查异常)

             系统要求必须处理

 

 

异常的处理

1.声明抛弃异常(消极的处理):

Throws:抛弃    写在方法名的定义上,全面跟要抛弃的异常类

异常产生时,责任可能并不在当前方法,让异常找到一个最佳的位置去处理。

抛弃过程中可以对异常类型进行扩展,但是不能缩小。

 

当代码出现异常时,代码不会向下执行,jvm会将异常封装成相应的异常类的对象,向外抛出,

Throw:抛出 出现在方法的实现里,用来抛出异常对象,throw后面跟异常对象。

方法的返回值:1  正常运行,要求方法必须返回定义的类型的值。

              2   非正常结束(出异常),方法返回的是异常对象。

 

方法覆盖:名相同,参数相同,返回类型类型相同

          访问权限不能更小

          抛弃的异常不能更多

2.trycatch(积极的处理):

一个try语句后面可以跟多个catchcatch有父类时,子类先写,父类后写;如果没有继承,顺序无所谓。

Try{

 

1  **********************;

 

2  &&&&&&&&&&&&&&;

 

3  %%%%%%%%%%%%%%;

 

}catch(Exception e){

4 ##################

e.printStackTrace()//打印异常堆栈信息

}catch2

5   &&&&&&&&&&&&&&;

finally

6!!!!!!!!!!!!!!!!!!!!!!!!1//不管有没有异常出现都要执行的代码。

//try   catch里出现了System.exit(0),finally不会执行。

7  @@@@@@@@@@@@@@

第一种:如果123没产生任何异常,3执行后直接执行6,然后执行7

第二种:如果2产生异常,3不会被执行,直接跳出try{},匹配catchcatch里定义的类型一致,执行4,随后执行6,然后执行7;如果不一致,再匹配catch2,相同执行5随后执行6,然后执行7;如果和catch不同,语法错误

语法有问题

 

Try  -―――― catch

Try  ―――---  finally

Try  ――――  catch  ―――   finally

4   自定义异常类型(业务异常)

//已检查异常

Class MyException extends Exception{

 

 

}

 

//未检查异常

Class MyException extends RuntimeException{

 

}

 

Throws   抛弃

throw     抛出

throwable  运行时可能碰到的任何问题的总称

 

Final      修饰属性,方法,类;不能被继承,不能被覆盖。

finalize    在回收器回收前,提示信息,执行finalize

    finally      try catch结构中finally一定会执行

 

String     内存空间不可变化

 

StringBuffer   可变化

 

共性化的父类,个性化的子类

你可能感兴趣的:(jvm)