Java基础知识整理(一)- Error和Exception
来源:互联网 发布:淘宝星级在哪看 编辑:程序博客网 时间:2024/05/17 17:18
1. 共同点
Error和Exception都继承自Throwable类
/* * @(#)Exception.java1.32 05/11/17 * * Copyright 2006 Sun Microsystems, Inc. All rights reserved. * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. */package java.lang;/** * The class <code>Exception</code> and its subclasses are a form of * <code>Throwable</code> that indicates conditions that a reasonable * application might want to catch. * * @author Frank Yellin * @version 1.32, 11/17/05 * @see java.lang.Error * @since JDK1.0 */public class Exception extends Throwable { static final long serialVersionUID = -3387516993124229948L; /** * Constructs a new exception with <code>null</code> as its detail message. * The cause is not initialized, and may subsequently be initialized by a * call to {@link #initCause}. */ public Exception() {super(); } /** * Constructs a new exception with the specified detail message. The * cause is not initialized, and may subsequently be initialized by * a call to {@link #initCause}. * * @param message the detail message. The detail message is saved for * later retrieval by the {@link #getMessage()} method. */ public Exception(String message) {super(message); } /** * Constructs a new exception with the specified detail message and * cause. <p>Note that the detail message associated with * <code>cause</code> is <i>not</i> automatically incorporated in * this exception's detail message. * * @param message the detail message (which is saved for later retrieval * by the {@link #getMessage()} method). * @param cause the cause (which is saved for later retrieval by the * {@link #getCause()} method). (A <tt>null</tt> value is * permitted, and indicates that the cause is nonexistent or * unknown.) * @since 1.4 */ public Exception(String message, Throwable cause) { super(message, cause); } /** * Constructs a new exception with the specified cause and a detail * message of <tt>(cause==null ? null : cause.toString())</tt> (which * typically contains the class and detail message of <tt>cause</tt>). * This constructor is useful for exceptions that are little more than * wrappers for other throwables (for example, {@link * java.security.PrivilegedActionException}). * * @param cause the cause (which is saved for later retrieval by the * {@link #getCause()} method). (A <tt>null</tt> value is * permitted, and indicates that the cause is nonexistent or * unknown.) * @since 1.4 */ public Exception(Throwable cause) { super(cause); }}
/* * @(#)Error.java1.17 05/11/17 * * Copyright 2006 Sun Microsystems, Inc. All rights reserved. * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. */package java.lang;/** * An <code>Error</code> is a subclass of <code>Throwable</code> * that indicates serious problems that a reasonable application * should not try to catch. Most such errors are abnormal conditions. * The <code>ThreadDeath</code> error, though a "normal" condition, * is also a subclass of <code>Error</code> because most applications * should not try to catch it. * <p> * A method is not required to declare in its <code>throws</code> * clause any subclasses of <code>Error</code> that might be thrown * during the execution of the method but not caught, since these * errors are abnormal conditions that should never occur. * * @author Frank Yellin * @version 1.17, 11/17/05 * @see java.lang.ThreadDeath * @since JDK1.0 */public class Error extends Throwable { static final long serialVersionUID = 4980196508277280342L; /** * Constructs a new error with <code>null</code> as its detail message. * The cause is not initialized, and may subsequently be initialized by a * call to {@link #initCause}. */ public Error() {super(); } /** * Constructs a new error with the specified detail message. The * cause is not initialized, and may subsequently be initialized by * a call to {@link #initCause}. * * @param message the detail message. The detail message is saved for * later retrieval by the {@link #getMessage()} method. */ public Error(String message) {super(message); } /** * Constructs a new error with the specified detail message and * cause. <p>Note that the detail message associated with * <code>cause</code> is <i>not</i> automatically incorporated in * this error's detail message. * * @param message the detail message (which is saved for later retrieval * by the {@link #getMessage()} method). * @param cause the cause (which is saved for later retrieval by the * {@link #getCause()} method). (A <tt>null</tt> value is * permitted, and indicates that the cause is nonexistent or * unknown.) * @since 1.4 */ public Error(String message, Throwable cause) { super(message, cause); } /** * Constructs a new error with the specified cause and a detail * message of <tt>(cause==null ? null : cause.toString())</tt> (which * typically contains the class and detail message of <tt>cause</tt>). * This constructor is useful for errors that are little more than * wrappers for other throwables. * * @param cause the cause (which is saved for later retrieval by the * {@link #getCause()} method). (A <tt>null</tt> value is * permitted, and indicates that the cause is nonexistent or * unknown.) * @since 1.4 */ public Error(Throwable cause) { super(cause); }}
2. 不同点
Exception(异常):
在Java中程序的错误主要是语法错误和语义错误,一个程序在编译和运行时出现的错误我们统一称之为异常,它是VM(虚拟机)通知你的一种方式,通过这种方式,VM让你知
道,你(开发人员)已经犯了个错误,现在有一个机会来修改它。Java中使用异常类来表示异常,不同的异常类代表了不同的异常。但是在Java中所有的异常都有一个基类,叫做
Exception。1. 可以是“可控制的(checked)”或“不可控制的(unchecked)”
2. 表示一个由程序员导致的错误
3. 应该被应用程序级被处理
Error(错误):
它指的是一个合理的应用程序不能截获的严重的问题。大多数都是反常的情况。”,错误是VM的一个故障(虽然它可以是任何系统级的服务)。所以,错误是很难处理的,一般的
开发人员(当然不是你)是无法处理这些错误的。比如内存溢出。
1. 总是“不可控制的(unchecked)”
2. 经常用来表示系统级错误或者底层资源的错误
3. 如果可能的话,应该在系统级被捕捉
(注:参考文章--http://mousepc.iteye.com/blog/1279559)
3. 异常的分类
Exception分为2大类:运行时异常(RuntimeException / Unchecked Exception)和非运行时异常(Checked Exception)。
运行时异常:RuntimeException类直接继承自Exception类,称为运行时异常。Java中所有的运行时异常都直接或间接的继承自RuntimeException.
非运行时异常:Java中凡是继承自Exception但不是继承自RuntimeException的类都是非运行时异常
附:
error和exception有什么区别
error 表示恢复不是不可能但很困难的情况下的一种严重问题。比如说内存溢出。不可能指望程序能处理这样的情况。
exception 表示一种设计或实现问题。也就是说,它表示如果程序运行正常,从不会发生的情况。
- Java基础知识整理(一)- Error和Exception
- Java基础知识整理(一)
- Java基础知识整理(一)
- JAVA基础知识整理(一)
- Java Error和Exception
- Java Error和Exception
- Java NIO基础知识整理(一)
- JAVA学习笔记整理一(基础知识)
- java基础知识点滴整理(一)
- 类和对象基础知识整理(一)
- java的exception和error
- java的exception和error
- java中的Error和Exception
- java 的Exception和Error
- java中error和exception
- java中的Error和Exception
- Java中的Error和Exception
- java基础知识(整理)
- df与du
- Linux C 网络编程——4. 简单TCP Socket程序
- Arrays.sort()
- 数据结构之折半查找
- Hibernate——(3)主键生成方式
- Java基础知识整理(一)- Error和Exception
- [LeetCode] ZigZag Conversion
- u-boot.bin的生成问题
- How to Draw a Balanced Binary Tree ?
- linux入门--linux命令、编辑器与shell编程
- C#中使用正则表达式验证电话号码、手机号、身份证号、数字和邮编
- Spring事务隔离级别和事务传播行为
- 数据库模型设计——主键的设计
- spring framework源码下载并导入eclipse