欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

java--异常处理

程序员文章站 2024-01-27 10:00:04
异常处理 我们在写代码时,经常出现的一些小问题,为了方便我们处理,java为我们提供了异常机制 捕获异常与抛出异常 finallyDemo 抛出异常(throw) ......

异常处理

我们在写代码时,经常出现的一些小问题,为了方便我们处理,java为我们提供了异常机制
捕获异常与抛出异常

//捕获异常格式:
     try {
         //可能出错的语句
     } catch (出错的类型 出错的对象) {
         //出错后的处理
     }

//eg:
    try{
        system.out.println(1);
        system.out.println(2/0);
        system.out.println(3);
    } catch(arithmeticexception ae){
        system.out.println(4);
    }
    system.out.println(5);
    // 1  4  5

//eg2:
    try{
        //string s=null;
        //s.length();
        char[] chs = new char[5];
        system.out.println(chs[5]);
    }catch(nullpointerexception ne){
        system.out.println("空指针异常");
    }catch(exception e){                    //当有其他未知异常时,实例化异常的父类对象,捕获未知异常
        system.out.println("其他异常");
    }



//void printstacktrace(java.io.printwriter s) 
//通用方式,打印异常类型,位置,与java虚拟机自己捕获异常类型不同的是,这个异常打印后,还会继续执行下面的语句
    try{
        char[] chs = new char[5];
        system.out.println(chs[5]);
    }catch(exception e){
        e.printstacktrace();
    }
    system.out.println("----");
 

//finally: 不论是否捕获到异常都会执行的部分,常用于释放资源,清理垃圾
    try(){
        //有可能出现问题的代码;
    } catch(异常对象){
        //处理异常
    } finally{
        //释放资源;
        //清理垃圾
    }

finallydemo

//鲁棒版文件写入
    public static void main(string[] args) {
        function("a.txt");
    }
    
    public static void function(string filename){
        filewriter fw = null;
        try {
            //system.out.println(1/0);;
            fw = new filewriter(filename);
            fw.write("hello world");
            fw.write("hello world");
            //fw.write(2/0);
            fw.write("hello world");
            fw.write("hello world");
        } catch (ioexception e) {
            e.printstacktrace();
        }finally{
            try {
                if(fw!=null)
                    fw.close();
            } catch (ioexception e) {
                e.printstacktrace();
            }
            
        }
        
    }

抛出异常(throw)

throw new runtimeexception("抛出运行时异常");  //抛出运行时异常
throw new excepption("抛出编译时异常");

//自定义异常类  继承runtimeexception 或者是 exception
public class myexception extends runtimeexception{
    
    public myexception()
    {
        super();
    }
    
    public myexception(string s)
    {
        super(s);
    }
}