黑马程序员-java学习之异常

-------android培训java培训、期待与您交流! ----------

异常 : (1)就是程序运行过程中,遇到了问题,这就叫异常。

     (2)异常的体系

Throwable 其实应该分三种

Error  通常出现重大问题如:运行的类不存在或者内存溢出等。不编写针对代码对其处理。

Exception  除了 RuntimeException 和其所有子类,其他所有的异常类都是在编译的时候必须要处理的

要么try,要么抛

RuntimeException

RuntimeException 和其所有的子类,都不会在编译的时候报异常,而是在运行时报异常,这时候我们就需要回头看看我

们的代码是否有问题,比如角标越界,空指针等

(3)Throwable

A:getMessage() :返回此 throwable 的详细消息字符串。

class Throwable {

   String detailMessage;

   Throwable(){}

   Throwable(String message) {

    this.detailMessage = message;
   }

   public String getMessage() {

    return detailMessage;
   }
  }

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

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

(4)处理异常处理方式:

   A:try...catch...finally

格式:

try {

     需要检测的代码;

    }

    catch(异常类  变量) {

    异常处理代码;

     }
   ...
   finally {

     一定会执行的代码;//释放资源,但是1.7版本后不用finally也可以释放资源 
   }

可以有下面三种搭配形式:

   **try...catch(...)

   **try...finally

   **try...catch(...)...finally

  B:抛出 throws throw

  throws:用于标识函数暴露出的异常。thorws用在函数上,后面跟异常类名(可以由多个,用,隔开)。

  throw:用于抛出异常对象。throw用在函数内,后面跟异常对象。

  C:到底用谁?

   **你能处理,建议处理。try...catch...finally

   **你处理不了,抛出。

  D:自定义异常

  自定义类继承Exception或者其子类(RuntimeException)

   class MyException extends Exception{

    MyException(){}

    MyException(Stirng message){

    super(message); //将信息传递给父类,调用父类封装好的构造方法

     }
   }

   class Student {

     public void giveAge(int age) throws MyException

    (if(age>40 || age<0) {

     //throw new MyExcetpion("建议不学了");

     MyExcepiont my = new MyExcetpion("建议不学了");

      throw my;

      }
     else {

      System.out.println("可以学习Java");

      }

     }
   }
  E:RuntimeException和Exception

 区别:RuntimeException就是要你改代码的。你可以不处理。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值