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

    参考资料:

  • 相关阅读:
    25:最长最短单词
    09:向量点积计算
    08:石头剪刀布
    07:有趣的跳跃
    36:计算多项式的值
    33:计算分数加减表达式的值
    hdu 2289 Cup (二分法)
    Android-补间动画效果
    UVA 586 Instant Complexity
    企业门户(Portal)项目实施方略与开发指南
  • 原文地址:https://www.cnblogs.com/linkworld/p/7502213.html
Copyright © 2011-2022 走看看