JAVA中的异常

1.异常:未按程序预期的正常执行即为异常

2.常见异常有:

算术异常:ArithmeticExecption

空指针异常:NullPointerException

数组下标越界异常:ArrayIndexOutOfBoundsException

类型转换异常:ClassCastException

数组负下标异常:NegeativeArrayException

字符串转换为数字异常:NumberFormatException 

输入类型不匹配:InputMisMatchException

3 异常的捕获与抛出

捕获异常  try --catch--finally
 1 try{
 2 //监控区
 3 //可能存在的异常的代码
 4 }catch( 异常类型 e){
 5 // 如果try没有发现异常。忽略所有的catch块
 6 //如果 try 中报错了,此时匹配异常类型,执行此处代码,
 7 // 如果代码走到catch中,则默认被解决了
 8 }catch(xxx  e){
 9 //catch 可以有多个,本条处理异常为xxx的异常
10 }catch(xxxxx  e){
11 //本条处理异常为xxxxx 的异常
12 }finally{
13 //finally块是可选的,但是有finally块的话,无论异常是否发生或者是否处理,finally都会执行
14 }

注意:

1.try中没有异常的话直接忽略所有的catch代码

2.如果try发生异常,异常之后的代码就不会执行,会跳过然后去catch中匹配有没有解决这个异常的代码

 2.1如果有,则执行catch中的代码,只要执行了catch中的代码,则认为异常已解决,程序会继续执行try--catch之后的代码

 2.2如果没有,程序会报错,不再向下执行

3.在编写catch中的异常类型时,范围必须由小到大

4.finally 表示一定会执行的代码,不管是否异常

  *除非出现手动关闭程序:System.exit( 0 );

5.如果 try-catch 中存在return的话,finally 还会执行,而且先执行finally在执行return 

示例:

 1 public class Demo {
 2     public static void main(String[] args) {    
 3 try{
 4             System.out.println("纷纷");
 5             System.exit(0);
 6             System.out.println(2/0);//算数异常
 7             System.out.println("二");//前一代码异常,此条不执行
 8         }catch(NullPointerException e){//未匹配解决方案,继续向下执行
 9             System.out.println("si");
10         }catch(ClassCastException e){ //未匹配到解决方法,五其他解决方法,报错,终止运行
11             System.out.println("输错了");
12 //        }catch(Exception e){ //exception   所有异常
13 //            e.printStackTrace();//输出异常信息
14 //            System.out.println("呜呜呜");//注释部分为测试部分,不影响执行
15         }finally{
16             System.out.println("finally");
17         }
18         System.out.println("wulalala");
19 }
20 }

 JAVA中的异常

   抛出异常:throw ,throws

  throws

public int division( ) throws Exception{
//表示此方法被调用的时候可能存在异常,
//throws ,抛出异常,抛给调用者 }

  throw

try{
//可能发生的异常
}catch(Exception){
throw new Exception ( e );//用new 的方式,抛出异常
}
throw                     throws                  
生成并抛出异常 声明方法内抛出异常
位于方法体内部,可作为单独语句使用 必须跟在参数列表后面,不能单独使用
抛出一个异常对象,且只能一个 声明抛出异常类型,可以跟多个异常

 

 

 

 

 


//无论异常是否发生,异常是否匹配被处理,finally都会执行。
 //finally块通常是可选的。

上一篇:异常抛出


下一篇:promise