当前位置: 首页 > 编程笔记 >

java异常机制分析

阮喜
2023-03-14
本文向大家介绍java异常机制分析,包括了java异常机制分析的使用技巧和注意事项,需要的朋友参考一下

本文实例分析了Java的异常机制,分享给大家供大家参考。相信有助于大家提高大家Java程序异常处理能力。具体分析如下:

众所周知,java中的异常(Exception)机制很重要,程序难免会出错,异常机制可以捕获程序中的错误,用来提高程序的稳定性和健壮性。

java中的异常分为Checked Exception(非Runtime Exception)和UnChecked Exception(Runtime Exception),所有的异常类都直接或间接的继承Exception。Exception又直接继承自Throwable类,Throwable类的直接子类还有error类,不过当出现error时,程序会直接退出执行,程序处理不了error,所以这里重点讨论Exception类。RuntimeException类继承自Exception,运行时异常都直接或间接继承自RuntimeException类。其他继承Exception类的是非运行时异常,在编译期间可发现。运行时异常是在运行时才会出现的,如算术除零,在编译期间是可以通过的,但在运行时会抛出运行时异常,除数不能为零。

java的异常处理有两种

1、捕获异常

结构如下

try
{
//执行可能产生异常的代码

}
catch(RuntimeException e)
{
//对捕获的异常进行处理
}
catch(Exception e)//可定义捕获多个异常
{
//对捕获的异常进行处理
}
finally
{
//捕获完后要执行的代码,可有可无,如果有的话就一定会执行,不管有没有异常
}
try-catch-finally

如果异常被catch捕获后,后面还有catch语句就不会执行了,但如果有finally的话就一定会执行finally块里面的语句。

2、声明抛出异常

在调用会产生异常的方法所在的方法声明处声明throws Exception,此方法将不会对该类异常进行处理,而是由该方法的调用者处理。

3、人为的抛出异常

直接在方法内抛出异常,throw exception;

对于运行时异常推荐不对其进行处理。

自定义异常是定义了一个继承自Exception类的子类,一般不会定义继承自RuntimeException类,在try块中存在return语句时,如果有finally块语句,那么也要先执行完finally块的语句之后再返回,但如果try块中存在System.exit(0)语句,就不会执行finally块的语句,因为System.exit(0)会终止当前运行的java虚拟机,程序会在虚拟机终止前结束执行。

class myException extends Exception
{
  public myException(String str)
  {
    super(str);
  }
}
myException

异常在文件处理,输入输出流的应用场合等都会用上。

常见的异常类型有:

1、java.lang.NullPointerException:空指针异常,出现该异常的原因就是某个引用为null,但程序中又调用了该引用的某个方法。

2、java.lang.ClassNotFoundException :找不到指定的类,可能是类未定义。

3、java.lang.ArithmeticException:算术异常,如除数为零。

4、FileNotFoundException:在文件处理中,找不到指定的文件。

5、IOException:输入输出流异常

6、SQLException:sql异常,执行sql语句出现错误。

此外还有许多类型的异常,在以后的编程中会遇到。相信本文所述对大家的Java程序设计有一定的借鉴价值。

 类似资料:
  • 前面介绍了异常的产生是不可避免的,那么为了保证程序有效地执行,需要对发生的异常进行相应的处理。 Java 的异常处理通过 5 个关键字来实现: try、 catch、 throw、 throws 和 finally。 try catch 语句用于捕获并处理异常,finally 语句用于在任何情况下(除特殊情况外)都必须执行的代码,throw 语句用于拋出异常,throws 语句用于声明可能会出现的

  • 本文向大家介绍Java 常用类解析:java异常机制,异常栈,异常处理方式,异常链,异常丢失详解,包括了Java 常用类解析:java异常机制,异常栈,异常处理方式,异常链,异常丢失详解的使用技巧和注意事项,需要的朋友参考一下 1、java标准异常概述 Throwable表示任何可以作为异常被抛出的类,有两个子类Error和Exception。从这两个类的源代码中可以看出,这两个类并没有添加新的方

  • 本文向大家介绍Java 异常处理机制的理解?相关面试题,主要包含被问及Java 异常处理机制的理解?时的应答技巧和注意事项,需要的朋友参考一下 Java对异常进行了分类,不同类型的异常分别用不同的Java类表示,所有异常的根类为 java.lang.Throwable,Throwable下面又派生了两个子类:Error和Exception。 Error表示应用程序本身无法克服和恢复的一种严重问题。

  • 3.3.3 异常处理机制 那么,有没有办法使我们既能增强程序的健壮性,又不影响程序逻辑的清晰和完整呢? 现代编程语言提供了异常处理机制来解决这个问题。异常处理机制的基本思想是:程序运行 时如果发生错误,就“抛出”一个异常,而系统能够“捕获”这个异常并执行特定的异常处 理代码。图 3.7 中给出了异常抛出和捕获的示意图,从图中可见,异常实际上是一种可能改 变程序控制流的事件,使我们能跳出某个正常执行

  • 本文向大家介绍GO语言异常处理机制panic和recover分析,包括了GO语言异常处理机制panic和recover分析的使用技巧和注意事项,需要的朋友参考一下 本文实例分析了GO语言异常处理机制panic和recover。分享给大家供大家参考。具体如下: Golang 有2个内置的函数 panic() 和 recover(),用以报告和捕获运行时发生的程序错误,与 error 不同,panic

  • 问题内容: 我正在尝试通过android应用程序中的HTTP Post请求访问textalertapp.com。但是我收到了未知主机错误。谁能帮我解决这个问题。 代码是 问题答案: 我只是在清单文件中添加了这一行。问题解决了