java中处理异常

来源:互联网 发布:李荣浩和周杰伦知乎 编辑:程序博客网 时间:2024/05/18 01:27

今天我们来看一下处理异常的问题。异常对象其实都是派生于Throwable类的一个实例。

Throwable分支之下有一个Error和一个Exception。

常用的方法有 :

getMessage()----用来返回String类型的异常信息

printStackTrace()----打印追踪方法调用栈而获得的详细异常信息,可以用来追踪错误。一会我们可以来实验一下这两个方法。


声明异常用throws,而抛出异常用throw。这两个很容易混淆。

throws使用在函数上,但是throw是用在函数内的.

throws声明的异常类,但是throw抛出的是异常类所对应的对象。

一个方法可能会出现多种异常,因此呢,throws子句是允许抛出多个异常的,用“,”隔开。

比如public void merhod()throws IOException,SQLException{..}


我在学习异常的时候也看了一些大神的博客,感觉有一个代码非常好,简单并且容易理解。

贴代码~

package exception;public class test {    public static void main(String[] str) {        Demo d = new Demo();        try {            System.out.println(d.div(4, 0));        } catch (Exception e) {            System.out.println(e);
//可以尝试一下e.printStackTrace();
        }    }}class Demo {    int div(int a, int b) {        return a / b;    }}

在上述代码中,我们就可以捕捉到代码并且处理了一下这个异常,引起异常的原因是因为他的除数是0。


下面我们来试一下 自己定义一个异常类。

我们说过了,异常对象其实都是派生于Throwable类的一个实例,并且其下有两个分支,我们一般都是处理异常,因此使用分支Exception

贴代码~

package exception;public class test {    public static void main(String[] str) {        Demo d = new Demo();        try {            System.out.println(d.chufa(4, 0));        } catch (chufaException e) {            System.out.println(e);        }    }}class Demo {   public int chufa(int a, int b)throws chufaException   {   if(b==0)   {   throw new chufaException("异常");   }        return a / b;    }}class chufaException extends Exception{private String a;public chufaException(String s){a=s;}public String getMessage(){return a;}}

通过这个例子应该可以好理解自定义的异常类。加油!



0 0