JAVA基础知识回顾-----异常总结-----随想随写


  

1.定义:字面意思,不同于常规,也就是说,某段代码可能不正常,会出现问
题;



2.异常通常分为三级结构,第一级为Throwable,第二级为Error和Exception
第三级为Error下面对应的子类,以及Exception下面对应的子类;通常我们
只研究Exception下面的子类;

3.Exception分类:
  a) RuntimeException(运行时异常、UnCheckedException)):
   此种异常在编译前不检查异常,程序中可以选择捕获处理,也可以不处理;
  b) 非运行时异常(CheckedException):
   此种异常理论上是必须进行处理的异常,如果不处理,程序就不能编译通过;


4.参考:常用的运行时异常与非运行时异常

  运行时异常:

  非运行时异常:


5.异常处理的几种方式:
  a) try...catch...finally 来处理异常 

    try{
      //可能出现异常的代码
      //不会出现异常的代码(如果发生异常,则这部分代码不会被执行)
     }catch(Exception ex){
      //如何处理异常
     }finally{
      //必须执行的代码
     }

 
  b) 在方法名后使用throws  异常  的方式来系统自己处理异常;
    这种处理异常需要考虑一个问题,就是需要处理的异常是检查性异常,还是
    非检查性异常,如果是检查性异常,则必须使用try...catch进行处理,否则
    编译不会通过,如果是非检查性异常,则可以选择性的使用try...catch进行
    处理,如果不处理,抛到main方法时,JVM会自行处理异常
  c) throw 异常  此方法手动抛出异常,也需要考虑到两种情况,但是一般我们都会
    将此方法和try...catch一起使用;
    检查性异常: 必须使用try...catch进行处理,否则编译不会通过
    非检查性异常:可以选择性的使用try...catch进行处理,如果不处理,
    抛到main方法时,JVM会自行处理异常


6.自定义异常
  可以继承Exception也可以继承Throwable
  ep:
 

 class MyException extends Exception{
     public MyException(){}
     public MyException(String message){
        super(message);
     }
  }

 
  完整代码:

  package com.ahuiby.test;

  class MyException extends Exception{
    public MyException(){}
    public MyException(String message){
       super(message);
    }
  }

  public class Test {

 public static void main(String[] args) {
    
       int age=250;
       try{
        if(age>150||age<0){
         throw new MyException("年龄越界异常");
        }   
       }catch(MyException me){
        me.printStackTrace();
       }
 }

  }

猜你喜欢

转载自ye-wolf.iteye.com/blog/2303266