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);
}
}
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);
}
}