java中处理异常

时间:2022-03-29 00:46:00

今天我们来看一下处理异常的问题。异常对象其实都是派生于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;
}
}

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