zoukankan      html  css  js  c++  java
  • Java IO异常处理方式

    public class IOException{
    
        // 获取系统默认的行分隔符
        private static final String LINE_SEPARATOR = System.getProperty("line.separator");
    
        public static void main(String[] args){
    
            try{
                FileWriter fw = new FileWriter("test.md");
    
                fw.write("abc"+LINE_SEPARATOR+"haha");
    
            } catch (IOException){
                    System.out.println(e.toString());
            } finally{
                fw.close(); // 此时, fw 是局部变量, 只在 try 内部有效, 此时 fw 属于未定义变量
            }
        }
    }
    
    // 改进第一步:
    
    public class IOException{
    
        // 获取系统默认的行分隔符
        private static final String LINE_SEPARATOR = System.getProperty("line.separator");
    
        public static void main(String[] args){
    
            FileWriter fw = null; // 创建流对象
            try{
                // 流对象初始化
                fw = new FileWriter("k:\test.md");
    
                fw.write("abc"+LINE_SEPARATOR+"haha");
    
            } catch (IOException){
                    System.out.println(e.toString());
            } finally{
                try{
                    fw.close();// 此处有可能出现关闭失败的异常, 所以也许要 try catch
                } catch (IOException e){
                    throw new RuntimeException("关闭失败");
                }
            }
        }
    }
    
    // 运行上述程序:
    
    public class IOException{
    
        // 获取系统默认的行分隔符
        private static final String LINE_SEPARATOR = System.getProperty("line.separator");
    
        public static void main(String[] args){
    
            FileWriter fw = null;
            try{
                // 流对象初始化
                fw = new FileWriter("k:\test.md"); // 此处出现异常: FileNotFoundException
                                                    // 该异常是 IOException 的子类
    
                fw.write("abc"+LINE_SEPARATOR+"haha");
    
            } catch (IOException){
                    System.out.println(e.toString);
            } finally{
                try{
                    fw.close();  // 由于文件没有创建成功, 因此此处抛出 NUllPointerException
                } catch (IOException e){
                    throw new RuntimeException("关闭失败");
                }
            }
        }
    }
    
    // 改进第二步:
    
    public class IOException{
    
        // 获取系统默认的行分隔符
        private static final String LINE_SEPARATOR = System.getProperty("line.separator");
    
        public static void main(String[] args){
    
            FileWriter fw = null;
            try{
                // 流对象初始化
                fw = new FileWriter("k:\test.md"); // 此处出现异常: FileNotFoundException
                                                    // 该异常是 IOException 的子类
    
                fw.write("abc"+LINE_SEPARATOR+"haha");
    
            } catch (IOException){
                    System.out.println(e.toString);
            } finally{
                if(fw != null) // 增加一条判断语句
                try{
                    fw.close();  
                } catch (IOException e){
                    throw new RuntimeException("关闭失败");
                }
            }
        }
    }
    
    

    参考资料:

  • 相关阅读:
    vuex
    koa2+node+vue自启服务运行本地脚本
    重新认识js(一)
    JQuery图片左右无缝滚动
    javascript兼容性很好的省市区联动,易修改
    JQuery超级简单的TAB选项卡
    ViewState的原理分析
    JQuery图片切换特效
    asp.net验证控件详解【转】
    时间线 制作
  • 原文地址:https://www.cnblogs.com/linkworld/p/7502213.html
Copyright © 2011-2022 走看看