加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

Java异常处理学习心得

发布时间:2020-12-14 20:04:18 所属栏目:Java 来源:网络整理
导读:程序中总是存在着各种问题,为了使在程序执行过程中能正常运行,使用Java提供的异常处理机制捕获可能发生的异常,对异常进行处理并使程序能正常运行。这就是Java的异常处理。 一、可捕获的异常 Java中可以捕获的异常分为可控式和运行时异常。 1.可控式异常

程序中总是存在着各种问题,为了使在程序执行过程中能正常运行,使用Java提供的异常处理机制捕获可能发生的异常,对异常进行处理并使程序能正常运行。这就是Java的异常处理。

一、可捕获的异常

Java中可以捕获的异常分为可控式和运行时异常。

1. 可控式异常

在Java中把那些可以预知的错误,在程序编译时就能对程序中可能存在的错误进行处理,并给出具体的错误信息,这些错误称为可控式异常。常用的可控式异常如下:

异常说明 IOException 当发生某种I/O异常时,抛出此异常 SQLException 提供关于数据库访问错误或其他错误信息的异常 ClassNotFoundException 类没有找到异常 NoSuchFieldException 类不包含指定名称的字段时产生的信号NoSuchMethodException 无法找到某一特定方法时,抛出该异常

2. 运行时异常

在Java中不能被编译器检测到的错误称为运行时异常。常用的运行时异常如下:

 异常  说明  IndexOutOfBoundsException  指示某集合或数组的索引值超出范围时抛出该异常  NullPointerException  当应用程序试图在需要对象的地方使用null时,抛出该异常  ArithmeticException  当出现异常的运算条件时,抛出此异常  IllegalArgumentException  抛出异常的表明向方法传递了一个不合法或不正确的的参数  ClassCastException  当试图将对象强制转换为不是实例的子类时,抛出该异常

二、处理异常

在Java中当程序出现异常时,可以使用try???catch、try???catch???finally或try???finally进行处理。

1. 使用try???catch处理异常

try后是正常执行的语句,而catch后是对异常处理的语句,catch的括号中是程序需要处理的异常类型。语法格式如下:

try {
  正常执行的语句
} catch(Exception e) {
  对异常进行处理的语句
}

这里举一个算数异常的例子,如下。

 public class ExceptionTest { 
   public static void main(String[] args) {
     int result = 1 / 0;
     try {
       System.out.println(result);
     } catch (Exception e) {
       System.out.println("抛出异常:" + e.getMessage());
     }
   } 
 }

这里1/0是个异常的算法,因为除数不能为0。运行结果如下:

因为有异常,所以不执行try后的语句,从而执行catch后的语句。其中“e.getMessage()”是获取异常信息的方法,用于获取详细消息字符串;此外还有printStackTrace()方法,用于将其栈踪迹输出至标准错误流;toString()方法用于获得简短描述。

2. 使用try???catch???finally处理异常

这里try、catch后的语句与前面的相同,而finally后的语句无论是否发生异常都要执行,因此finally语句块通常用于执行垃圾回收。语法格式如下:

try {
  正常执行的语句
} catch(Exception e) {
  对异常进行处理的语句
} finally {
  一定会被处理的语句
}

3. 使用try???finally处理异常

在程序发生异常时,就可以在finally语句块中对其进行相应的处理,另外当程序没有发生异常时,执行完try和finally之间的语句后,也将执行finally语句块中的代码。语法格式如下:

try {
  需要执行的语句
} finally {
  一定会被处理的语句
}

三、抛出异常

对于程序中发生的异常,除了上面的try???catch语句处理之外,还可以使用throws声明或throws语句抛出异常。

1. 使用throws声明抛出异常

throws用于方法声明,在声明方法时使用throws声明抛出异常,然后在调用该方法中对异常进行处理。

如需声明多个异常,各异常间要用逗号分隔,语法格式如下:

数据类型 方法名(形参列表) throws 异常类1,异常类2,……,异常类n {
  方法体;
}

比如用throws抛出Exception异常。

public void showInfo() throws Exception {    // 抛出Exception
  FileInputStream in = new FileInputStream("C://Record.txt");  // 创建IO对象 
}

2. 使用throw语句抛出异常

如果希望程序自行抛出异常,可以使用throw语句来实现。语法格式如下: throw new Exception("对异常的说明"); 

使用throw语句抛出的是异常类的实例,通常与if语句一起使用。如:

if(x < 0) {
  throw new Exception("程序异常,x不能小于0。");
}

您可能感兴趣的文章:

  • 详谈Java 异常处理的误区和经验总结(分享)
  • Java编程异常处理最佳实践【推荐】
  • 基于java Servlet编码/异常处理(详解)
  • 基于Java子线程中的异常处理方法(通用)
  • java-流的使用完结与异常处理机制(详解)
  • Spring MVC全局异常处理和单元测试_动力节点Java学院整理
  • java 抛出异常处理的方法
  • 关于Java异常处理的几条建议_动力节点Java学院整理
  • Java异常处理运行时异常(RuntimeException)详解及实例
  • 老生常谈Java异常处理和设计(推荐)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读