java throws_Java基础系列-throw、throws关键字

一、概述

throw和throws就是异常相关的关键字,在java中异常机制是一个非常重要的机制,我们需要重点掌握。

既然说到了异常,简单描述下异常机制很有必要,这也对后文的讲述提供前提。

二、Java异常机制

在Java中表示异常的接口是Exception,与其同一层次的还有一个Error接口,用于描述不可挽回的系统级错误,它们两个都继承自Throwable接口,这个接口是所有异常和错误的超接口。

在Java中只有Throwable的实例才能在虚拟机或者java代码中被抛出,一切想要抛出的异常都必须作为Throwable的子类。

异常又分为两种,一种是受检异常,另一种是未受检异常。

受检异常是Java内部定义的一系列异常类,它们都实现了Exception接口,这些异常必须被手动捕捉或者手动抛出,否则无法通过编译,属于强制处理异常,属于编译期异常。

未受检异常则是一些可以不进行捕捉的异常,这些异常一般是由运行时逻辑引发,这些异常可以不捕捉,也可以进行捕捉或抛出,如果未进行捕捉、抛出处理,那么一旦运行时引发了这些异常,那么会被JVM直接处理,它包括运行时异常和Error。

运行时异常是典型的未受检异常,Java内部为我们提供了一部分这类型异常,其中最常见的空指针异常就属此类。

其实正确的做法是尽可能的对异常进行捕捉处理。

三、throw作用

异常的抛出需要使用throw关键字,抛出的是一个异常对象,一般我们采用下面的方式进行抛出

throw new NullPointerException();

再结合try...catch语句,或者if语句进行组合使用,将可能的异常抛出。

有时候我们使用try...catch语句的catch块中加入throw语句,可以将一个受检异常转化为一个未受检异常。

四、throws作用

当我们没有条件在当前的方法中进行某个异常的处理时,可以在方法声明处抛出,在这里抛出异常将被调用者捕捉处理,或者再次抛出,多个异常可用逗号隔开。

public void test()throws NullPointerException,ParseException{}

五、异常习惯

在写程序时,对可能会出现异常的部分通常要用try{...}catch{...}去捕捉它并对它进行处理;

用try{...}catch{...}捕捉了异常之后一定要对在catch{...}中对其进行处理,那怕是最简单的一句输出语句,或栈输入e.printStackTrace();

如果是捕捉IO输入输出流中的异常,一定要在try{...}catch{...}后加finally{...}把输入输出流关闭;

如果在函数体内用throw抛出了某种异常,最好要在函数名中加throws抛异常声明,然后交给调用它的上层函数进行处理。

参考:

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值