`
Riddick
  • 浏览: 642190 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

深入Java,lang.Throwable

    博客分类:
  • J2SE
阅读更多
在java语言中,错误类的基类是java.lang.Error,异常类的基类是java.lang.Exception。
1)相同点:java.lang.Error和java.lang.Exception都是java.lang.Throwable的子类,因此java.lang.Error和java.lang.Exception自身及其子类都可以作为throw的使用对象,如:throw new MyError();和throw new MyException();其中,MyError类是java.lang.Error的子类,MyException类是java.lang.Exception的子类。
2)不同点:java.lang.Error自身及其子类不需要try-catch语句的支持,可在任何时候将返回方法,如下面的方法定义:
public String myMethod() { 
throw new MyError(); 
} 

其中MyError类是java.lang.Error类的子类。
java.lang.Exception自身及其子类需要try-catch语句的支持,如下的方法定义是错误的:
public String myMethod() { 
throw new MyException(); 
} 

正确的方法定义如下:
public String myMethod() throws MyException { 
throw new MyException(); 
} 

其中MyException类是java.lang.Exception的子类。

--------------------------------------------
JAVA异常是在java程序运行的时候遇到非正常的情况而创建的对象,它封装了异常信息,java异常的根类为java.lang.Throwable,整个类有两个直接子类java.lang.Error和java.lang.Exception.Error是程序本身无法恢复的严重错误.Exception则表示可以被程序捕获并处理的异常错误.JVM用方法调用栈来跟踪每个线程中一系列的方法调用过程,该栈保存了每个调用方法的本地信息.对于独立的JAVA程序,可以一直到该程序的main方法.当一个新方法被调用的时候,JVM把描述该方法的栈结构置入栈顶,位于栈顶的方法为正确执行的方法.当一个JAVA方法正常执行完毕,JVM回从调用栈中弹处该方法的栈结构,然后继续处理前一个方法.如果java方法在执行代码的过程中抛出异常,JVM必须找到能捕获异常的catch块代码.它首先查看当前方法是否存在这样的catch代码块,如果存在就执行该 catch代码块,否则JVM回调用栈中弹处该方法的栈结构,继续到前一个方法中查找合适的catch代码块.最后如果JVM向上追到了main()方法,也就是一直把异常抛给了main()方法,仍然没有找到该异常处理的代码块,该线程就会异常终止,如果该线程是主线程,应用程序也随之终止,此时 JVM将把异常直接抛给用户,在用户终端上会看到原始的异常信息.
分享到:
评论

相关推荐

    在Java中异常分析

    - **异常路径**:`java.lang.Object -> java.lang.Throwable -> java.lang.Exception -> java.lang.RuntimeException -> java.lang.IndexOutOfBoundsException -> java.lang.ArrayIndexOutOfBoundsException` ...

    解析Java中所有错误和异常的父类java.lang.Th

    在Java编程语言中,`java.lang.Throwable`是所有错误(Error)和异常(Exception)的顶级父类,它是Java异常处理机制的核心组成部分。这个类位于`java.lang`包中,是Java标准库的一部分,提供了处理运行时问题的标准...

    常见的java异常.pdf

    在Java中,异常被组织成一个层次结构,根类是`java.lang.Throwable`,其下有两个主要子类:`Error`和`Exception`。`Error`通常表示系统级的错误,比如内存溢出或虚拟机错误,而`Exception`是程序中可以预见和处理的...

    javaapi.zip

    `java.lang.Throwable` 是所有异常的父类,包括 `Exception` 和 `Error`。 7. **反射机制**:Java 的反射 API(在 `java.lang.reflect` 包中)允许程序在运行时动态地获取类的信息并操作类的对象,如创建对象、调用...

    java1.6.api

    Java 1.6中的异常类分布在`java.lang.Throwable`、`java.lang.Error`和`java.lang.Exception`等层次结构中。 4. **多线程**:Java 1.6支持多线程编程,`java.lang.Thread`类和`java.util.concurrent`包提供了创建、...

    Java异常处理.pdf

    +-- java.lang.Throwable | +-- java.lang.Error | | | +-- java.lang.VirtualMachineError | +-- java.lang.ThreadDeath | +-- ... | +-- java.lang.Exception | +-- java.lang.RuntimeException | | ...

    Java rt.jar 源码分析

    7. **异常处理**: `java.lang.Throwable`及其子类,如`Exception`和`Error`,构成了Java的异常处理系统。源码分析可以解释异常的构造、传播和捕获过程。 8. **工具类**: `java.util`和`java.text`等包中的工具类,...

    JAVA 编程 API基础 JAVA开发平台,JAVA编程资源----JAVA API.zip

    3. **异常处理**:Java API通过`java.lang.Throwable`类及其子类(如Exception和Error)来处理程序运行时的错误。异常处理机制使得程序在遇到问题时能够优雅地捕获和处理,而不是立即崩溃。 4. **多线程编程**:...

    JAVA-API.zip_java api

    此外,"异常处理"(java.lang.Throwable和其子类)是Java中错误和异常处理的基础。 对于"Java API"的学习,不仅要理解每个类的功能,还需要掌握如何正确使用它们。例如,了解如何通过方法调用来实现特定功能,如何...

    JAVA-API.rar_Java api文档_java api

    4. **异常和错误**:Java中的异常处理机制是通过`Exception`和`Error`类来实现的,这些类在`java.lang.Throwable`下。例如,`IOException`是所有I/O异常的基类,`NullPointerException`表示尝试访问空对象引用。 5....

    Java API 文档 jdk-17.0.2-doc-all

    6. **异常处理**:`java.lang.Throwable`、`Exception`和`Error`构成了Java的异常处理机制,通过`try-catch-finally`语句块来处理程序运行时可能出现的问题。 7. **反射机制**:`java.lang.reflect`包提供了反射API...

    Java API.zip

    6. **异常处理**:`java.lang.Throwable`类及其子类如`Exception`和`Error`,构成了Java的异常处理机制,通过`try-catch-finally`语句块来捕获和处理异常。 7. **反射**:`java.lang.reflect`包提供了反射机制,...

    JAVA-API.rar_JAVA的API中文版_java API_java api

    API中的`java.lang.Throwable`是所有异常的基类,它的子类如`Exception`和`Error`构成了Java的异常体系。 4. **多线程**: Java API提供了强大的多线程支持。`java.lang.Thread`类和`java.util.concurrent`包提供了...

    Java1.6API中文版

    6. **异常处理**:`java.lang.Throwable`、`Exception`和`Error`是异常处理的核心类,Java强制异常处理使得程序更加健壮。 7. **反射机制**:`java.lang.reflect`包提供了运行时动态访问和修改类或接口的能力,是...

    java工具类.zip

    `java.lang.Throwable`是所有异常的基类,包括Error和Exception。工具类中可能包含处理异常的静态方法,如检查是否抛出特定类型的异常,或者提供方便的异常包装功能。 7. **字符串操作**: `java.lang.String`类...

    [Java参考文档].JDK_API_1_6_zh_CN

    13. **异常处理**:如`java.lang.Throwable`,包含异常和错误的基类,定义了如何抛出和捕获异常。 14. **注解**:如`java.lang.annotation`,提供了一种元数据机制,可以在编译时或运行时处理程序元素。 每个类的...

    JAVA中文API文档

    2. **异常处理**: `java.lang.Throwable`及其子类,如Exception和Error,是Java异常处理的基础。了解这些类的层次结构和如何正确抛出、捕获和处理异常对于编写健壮的代码至关重要。 3. **字符串与字符处理**: `java...

    jdk1.6的rt.jar的源码

    1. `java.lang.Throwable`:所有异常和错误的基类,提供了异常处理的基本结构。 2. `java.lang.Thread`:线程类,定义了线程的生命周期和行为,包括启动、暂停、恢复和终止线程。 通过分析JDK1.6的rt.jar源码,...

    Java API中文文档.rar

    此外,Java API还涵盖了多线程编程(`java.lang.Thread`)、网络编程(`java.net`包)、反射(`java.lang.reflect`包)、注解(`java.lang.annotation`包)和异常处理(`java.lang.Throwable`及其子类)等多个方面。...

Global site tag (gtag.js) - Google Analytics