java中对于异常的处理,代码简单描述

来源:互联网 发布:个人淘宝客网站备案 编辑:程序博客网 时间:2024/05/18 01:20
package com.hbut.basetest;


import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.InputStream;


public class TestExeception {


/**
* 异常的分类:1.编译时异常;----在程序编译时就要检查的,比如InputStream in= new FileInputStream("1.txt");  这个代码在写的时候就要对异常进行处理,要么抓、抛,要么声明异常
*                      2.运行时异常;----在程序运行时抛出,在编译时不会出现任何问题,比如 int i=1/0; 这个在编译时时可以通过的,但是在运行时会抛出异常,是算数运行异常
*                     注意:子类不能抛出比父类更多的异常:这是因为,在处理异常时,一般是调用父类的处理方法,如果子类抛出的异常更多,要修改父类,这与java的多态机制相背,所以是禁止的;
*/

public static void main(String[] args) {

test1(); //test1方法已经处理了

try {
test2();    //对于test2方法抛出的异常,现在不能再抛了,因为已经到main了,再抛就到java虚拟机了,那么就要直接挂了
} catch (FileNotFoundException e) {
e.printStackTrace();
}

test3();//此处的test3是运行时异常


}

/**

*  用  try catch  或者用声明异常

*/
public static void test1(){
try {
InputStream in= new FileInputStream("1.txt");//用  try catch 对异常进行抓抛,调用者不用处理了
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}

/**
* 用throws关键字 ,把异常声明也是可以的,但是在main方法调用时,需要对该异常进行处理的;

*/
public static void test2() throws FileNotFoundException{
 
InputStream in2= new FileInputStream("2.txt");  



}

/**
* 在运行时不会抛出

*/
public static void test3(){
int i=1/0;
System.out.println("i="+i);

}



}
0 0