Java异常的分类
转载自:http://blog.csdn.net/ilibaba/archive/2009/03/07/3965359.aspx
被架构师问的面试题
1. 异常机制
异常机制是指当程序出现错误后,程序如何处理。具体来说,异常机制提供了程序退出的安全通道。当出现错误后,程序执行的流程发生改变,程序的控制权转移到异常处理器。
传统的处理异常的办法是,函数返回一个特殊的结果来表示出现异常(通常这个特殊结果是大家约定俗称的),调用该函数的程序负责检查并分析函数返回的结果。这样做有如下的弊端:例如函数返回-1代表出现异常,但是如果函数确实要返回-1这个正确的值时就会出现混淆;可读性降低,将程序代码与处理异常的代码混爹在一起;由调用函数的程序来分析错误,这就要求客户程序员对库函数有很深的了解。
异常处理的流程:
① 遇到错误,方法立即结束,并不返回一个值;同时,抛出一个异常对象 。
② 调用该方法的程序也不会继续执行下去,而是搜索一个可以处理该异常的异常处理器,并执行其中的代码 。
2 异常的分类
异常的分类:
① 异常的继承结构:基类为Throwable,Error和Exception继承Throwable,RuntimeException和IOException等继承Exception,具体的RuntimeException继承RuntimeException。
② Error和RuntimeException及其子类成为未检查异常(unchecked),其它异常成为已检查异常(checked)。
每个类型的异常的特点
Error体系 :
Error类体系描述了Java运行系统中的内部错误以及资源耗尽的情形。应用程序不应该抛出这种类型的对象(一般是由虚拟机抛出)。如果出现这种错误,除了尽力使程序安全退出外,在其他方面是无能为力的。所以,在进行程序设计时,应该更关注Exception体系。
Exception体系包括RuntimeException体系和其他非RuntimeException的体系 :
① RuntimeException:RuntimeException体系包括错误的类型转换、数组越界访问和试图访问空指针等等。处理RuntimeException的原则是:如果出现RuntimeException,那么一定是程序员的错误。例如,可以通过检查数组下标和数组边界来避免数组越界访问异常。
②其他非RuntimeException(IOException等等):这类异常一般是外部错误,例如试图从文件尾后读取数据等,这并不是程序本身的错误,而是在应用环境中出现的外部错误。
与C++异常分类的不同 :
① Java中RuntimeException这个类
相关文档:
继承:
java只有单继承,不能同时继承多个类
class Animal{}
class Fish extends Aniaml{}
super.(父类中与子类相同的方法)();//super-特殊的变量,用于访问父类中与子类相同的方法,如下
//父类
class Fish extends animal
{
void output()
{
System.out.println("Fish");
&n ......
import java.util.LinkedList;
//单向队列
public class Queue {
public Queue() {
}
private LinkedList list = new LinkedList();
public void pu ......
/*从服务器中下载文件到本地*/
/*url:文件存放在服务器的地址;target:要保存的路径*/
public String DownloadFile(String url,String target){
URLConnection con=null;
URL theUrl=null;
try {
theUrl=new URL(url);//建立地址
......
//java.io
---------------------------------------------------------------
/**
* Title: 文件的各种操作
* Copyright: Copyright (c) 2004
* Company: 广东 有限公司
* @author 网络信息部 庆丰
* @version 1.0
*/
p ......
Java连接SQLite数据库详解 下载SQLite数据库的JDBC 这里给出一个中文站点的URL: 设置环境变量: 将下载到的包解压后得到jar包 sqlitejdbc-v033-nested.jar 放到%JAVA_HOME%\lib 下,并且将其添加到classpath系统环境变量中,我的classpath系统环境变量现在为: .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\li ......