• 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("关闭失败");
                }
            }
        }
    }
    
    

    参考资料:

  • 相关阅读:
    oracle安装界面中文乱码解决
    Vmware esxi开启snmp服务
    sybase ase 重启
    zabbix通过snmp监控vmware vpshere5.5
    Linux下安装Sybase ASE 16
    DATAGUARD在做SWITCHOVER切换时遇到问题总结
    UVA 1564
    Drupal 7 模块开发 建立模块帮助信息(hook_help)
    HTML5实现图片文件异步上传
    RGCDQ(线段树+数论)
  • 原文地址:https://www.cnblogs.com/linkworld/p/7502213.html
Copyright © 2020-2023  润新知