java exception用法_Java基础回顾_Exception异常使用详解

package 内部类异常包装器;

public class 异常 {

/**

* 1.异常:

* 有Error和Exception两个基本子类

* 2.Error:

* Error表示恢复不是不可能但很困难的情况下的一种严重问题。比如说内存溢出。不可能指望程序能处理这样的情况。

* 3.Exception:

* 表示一种设计或实现问题。也就是说,它表示如果程序运行正常,从不会发生的情况。比如,如果数组索引扩展不超出数组界限,那么,ArrayIndexOutOfBoundsException异常从不会抛出。

*

* 4.本类中对除以0产生错误的异常进行捕捉,抛出异常、finally多执行释放资源,回收垃圾

* 5.处理异常:

* 第一,通过将Try{}catch(){}块纳入其代码中,在这里捕获给被命名为属于某个超类的异常,并调用方法处理它。即使catch块是空的,这也算是处理情况。

第二,让被调用的方法表示它将不处理异常,而且该异常将被抛回到它所遇到的调用方法中。它是按如下所示通过用throws子句标记的该调用方法的声明来实现的:

public void troublesome() throws IOException

6.异常:

(1).非受检异常:是指编译不要求强制处理的异常。一般是编程时的逻辑错误。是程序员应该积极避免出现的异常

错误的类型转换异常:java.lang.ClassCastException

数组下标越界异常:java.lang.ArrayIndexOutOfBoundsException

空指针异常:java.lang.NullPointerException

除0溢出异常:java.lang.ArithmeticException

数据格式异常 NumberFormatException

(2).受检异常:是指编译器要求必须处理的异常,即程序在运行时由于外界因素造成的一般性异常

没有找到指定名称的类异常:java.lang.ClassNotFoundException

访问不存在的文件异常:java.io.FileNotFoundException

操作文件时发生的异常:java.io.IOException

操作数据库时发生的异常:java.sql.SQLException

7.抛出异常:

(1).throw语句用来明确抛出一个异常,用户必须得到一个Throwable类或其它子类产生的实例句柄,通过参数传到catch子句,或者用new创建一个实例

注意:执行throw语句后,运行流程将立即停止,throw的下一条语句也将暂停执行。throw后面必须抛出一个Throwable的实例

(2).throws:\一个方法有异常,但它本身并不对异常进行处理。将其向外抛出异常 详见:本包中的 异常2.java类

*/

public static void main(String[] args) {

System.out.println("请打开数据库连接");

System.out.println("数据库操作");

try {

int i = 12 / 0;//异常代码,0不能作为整除数

System.out.println("执行数据库操作");

} catch (Exception e) {

/**System.out.println("除0出错!");

以下是异常信息的获取

// System.out.println(e.getMessage());//返回异常对象的详细信息

e.printStackTrace();//获取异常的具体类型

*/

throw new ArithmeticException("除0出错");//7.throw抛异常

}finally{

System.out.println("关闭数据库连接....");//总要执行的语句

}

}

}

package 内部类异常包装器;

/**

*

* 这里定义了一个异常,数组下标越界,但通过改变了i的值,使程序又运行,通过finally中的(i+1)次

*

*/

public class 异常2 {

public static void main(String[] args)throws Exception {//throws抛出异常

int i = 0;

String[] str = {"Hello Word", "No I mean it!", "HELLO WORD"};

while(i < 4){//小于4代表数组下标越界

try{

System.out.println(str[i]);

}catch (ArrayStoreException e) {

// TODO: handle exception

i = -1;

}finally{

System.out.println("必运行的代码"+(i+1)+"次");

}

i++;

}

}

}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值