java语言异常处理_Java语言学习(九):异常处理

异常是程序中的一些错误,但并不是所有的错误都是异常,并且错误有时候是可以避免的。常见的三种异常类型有:

检查性异常,如打开一个不存在的文件

运行时异常,如数组越界

错误,如栈溢出

所有的异常类是从 java.lang.Exception 类继承的子类,Exception类是Throwable 类的子类,如下图所示:

6040f3af1780f783e25f2ac51334d3e3.png

常见的非检查性异常有:数组下标越界异常ArrayIndexOutOfBoundsException、空指针异常NullPointerException等,检查性异常有:类未发现异常ClassNotFoundException,表示应用程序试图加载类时,找不到相应的类,NoSuchMethodException表示请求方法不存在等等。

捕获异常,如下实例:

FileInputStream fis = null;

try{

File file = new File("d:\\a.txt");

fis = new FileInputStream(file);

}catch(FileNotFoundException e){

e.printStackTrace();

}finally{

try{

fis.close(); //释放资源

}catch(IOException e){

e.printStackTrace();

}

}

上面实例中使用的捕获异常的方式是:try/catch 代码块,它的最简单的用法为:

try

{

// 程序代码

}catch(ExceptionName e1)

{

//Catch 块

}

当然,也可以使用多重捕获块,即后面有多个catch块,匹配不同的异常,finally块属于可选部分,无论是否发生异常,该代码块总会被执行,这里可用来运行清理类型等收尾善后性质的语句,如资源的释放等。

如果一个方法没有捕获一个检查性异常,那么该方法必须使用 throws 关键字来声明。throws 关键字放在方法签名的尾部。也可以使用 throw 关键字抛出一个异常,仅可应用在方法体中,无论它是新实例化的还是刚捕获到的。用法如下:

//throws用法

public void Fun() throws Exception{

//throw用法

new throw Exception();

}

除了Java中提供的异常类,我们也可以自定义异常类,需要继承Exception类或者Exception的子类。最简单的自定义异常类如下:

public class FunException extends Exception{}

在类中可以提供一个无参构造方法和一个字符串参数的构造方法,方便输出调试信息。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值