java笔记之异常机制

java的异常机制主要依赖于try、catch、finally、throws、throw五个关键字。

try后面添加可能发生异常的代码。catch用于捕捉发生的异常,并进行异常处理。finally是最后还会执行的(用来关闭在try打开的资源),一定会执行到的主编

。try后面可以加多个catch语句,但是只会执行一个catch,除非在catch中加入continue。

获取异常信息:

getMessage();返回该异常的详细描述字符。

printStackTrace();将该异常的跟踪栈信息输出到标准错误输出。

printStackTrace(printStream s);将该异常的跟踪栈信息输出到指定输出流。

getStackTrace();返回该异常的跟踪信息。


Checked异常和Runtime异常

所以RuntimeException及其子类的实例被称为Runtime异常,否则称为Checked异常。

Checked异常可以处理好的,没有处理好Checked异常是不会编译过的。

throws声明异常。

throws表示的是当前方法不知道如何处理异常,需要上已经调用者处理。如果main函数也不能处理该类异常,也可以使用throws抛出异常。将该异常交给JVM处理。JVM处理通常是打印跟踪异常,并终止该程序运行。throws只能用在方法声明中。子方法抛出的异常必须是父方发抛出的异常的子类或相等。

public static void main(String[] args)throws IOException

{

FileInputStream fis = new FileInputStream("a.txt");

test();

}

public static void test()throws IOException

{

FileInputStream fis = new FileInputStream("a.txt");

}


使用throw抛出异常。

当程序出现错误时,系统会自动抛出异常;此外,程序也可以自己抛出异常。此时用的是throw。

throw抛出的异常是Checked异常。throw异常要么在try语句中,要么在一个带throws什么抛出异常的方法中。

public class JavaTest {


public static void main(String[] args) {
try {
checkedEx(-1);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println(e.getMessage());
}
}
public static void checkedEx(int a)throws Exception
{
if(a<0){
throw new Exception("CHECKED xiaoyuling");
}
}
public static void runEx(int a)
{
if(a<0){
throw new RuntimeException("RUN xiaoyuling");
}
}
}

自定义异常:

public AutoException extends Exception{

public AutoException(){}

public AutoException(String msg){

super(msg);

}

}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值