1.自定义异常类:
/** * 自定义异常,只要继承继承Exception类或其子类即可 * @author Administrator * */ public class FileException extends Exception { /*public FileException(){ } public FileException(String gripe){ //super(gripe); }*/ public void printStackTrace(){ System.out.println("suohai"); } }
2.抛出异常:
class Text{ public static void t() throws FileException{ /* * 调用t(),必须捕捉这异常,需要在别的类中接受这异常,就得throws Exception * throws FileException且别的类调用时,必须使用try...catch语句,不管能不能捕获, * 即在此方法中已经捕获这个异常,但并没有再次抛出,调用此方法的类并不会捕获这异常,依然要try...catch */ /** * 可以只在方法中抛出异常,在调用方法时捕捉异常 * 也可以直接在方法内捕捉异常,即不用try...catch语句, * 直接抛出异常:throw new FileException("hehe"); */ try{ throw new FileException();//抛出异常,调用FileException类的构造方法 }catch(FileException e){ System.out.println("呵呵"); throw e;//要想在方法外面再次捕捉这异常,需要再次抛出,因为在外面调用方法时,永远都会被方法内的捕获。 } } }
3.捕获异常:
public class ExceptionTest { public static void main(String[] args) { /**即便不会捕获这个异常, *也需要使用try...catch语句 **/ try { Text.t(); } /*catch (FileException e) { System.out.println("啊哈"); } */ catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
4.运行结果:
呵呵
suohai