Java Try/Catch,或在不更改方法头的情况下执行异常处理

Java Try/Catch,或在不更改方法头的情况下执行异常处理,java,java-io,Java,Java Io,我正在编写一个简单的程序,它将“我爱Java”写入一个文本文件300次,我让它如图所示工作 public class PrintLines { public static void main(String[] args) throws Exception{ java.io.File file = new java.io.File("myFile.txt"); java.io.PrintWriter output = new java.io.Pr

我正在编写一个简单的程序,它将“我爱Java”写入一个文本文件300次,我让它如图所示工作

public class PrintLines {
    public static void main(String[] args) throws Exception{    
         java.io.File file = new java.io.File("myFile.txt");
         java.io.PrintWriter output = new java.io.PrintWriter(file);        
         int count = 1;
         while (count <= 300) {
             output.println(count + " I love Java!");
             count++;           
         }
         output.close();
    }
}
公共类打印行{
公共静态void main(字符串[]args)引发异常{
java.io.File文件=新的java.io.File(“myFile.txt”);
java.io.PrintWriter输出=新的java.io.PrintWriter(文件);
整数计数=1;

而(count您的代码应该与此类似。 我认为例外应该是IOException

public class PrintLines {
    public static void main(String[] args) {
        java.io.File file;
        java.io.PrintWriter output = null;
        try{
            file = new java.io.File("myFile.txt");
            output = new java.io.PrintWriter(file);
            int count = 1;
            while (count <= 300) {
                output.println(count + " I love Java!");
                count++;

           }
           output.close();
       } catch(*EXCEPTION*) {
       //Handle Exception
       } finally {
          if(output!=null) {
           output.close();
          }
       }
    }
}
公共类打印行{
公共静态void main(字符串[]args){
java.io.File文件;
java.io.PrintWriter输出=null;
试一试{
file=newjava.io.file(“myFile.txt”);
输出=新的java.io.PrintWriter(文件);
整数计数=1;

而(count您的代码应该与此类似。 我认为例外应该是IOException

public class PrintLines {
    public static void main(String[] args) {
        java.io.File file;
        java.io.PrintWriter output = null;
        try{
            file = new java.io.File("myFile.txt");
            output = new java.io.PrintWriter(file);
            int count = 1;
            while (count <= 300) {
                output.println(count + " I love Java!");
                count++;

           }
           output.close();
       } catch(*EXCEPTION*) {
       //Handle Exception
       } finally {
          if(output!=null) {
           output.close();
          }
       }
    }
}
公共类打印行{
公共静态void main(字符串[]args){
java.io.File文件;
java.io.PrintWriter输出=null;
试一试{
file=newjava.io.file(“myFile.txt”);
输出=新的java.io.PrintWriter(文件);
整数计数=1;

而(count它看起来是这样的-

public class PrintLines {
    public static void main(String[] args){
        java.io.File file = new java.io.File("myFile.txt");
        java.io.PrintWriter output = null;
        try {
            output = new java.io.PrintWriter(file);
        } catch (FileNotFoundException e) {
           // TODO Auto-generated catch block
           e.printStackTrace();
        }
        int count = 1;
        while (count <= 300) {
            output.println(count + " I love Java!");
            count++;
        }
        output.close();
    }
}
公共类打印行{
公共静态void main(字符串[]args){
java.io.File文件=新的java.io.File(“myFile.txt”);
java.io.PrintWriter输出=null;
试一试{
输出=新的java.io.PrintWriter(文件);
}catch(filenotfounde异常){
//TODO自动生成的捕捉块
e、 printStackTrace();
}
整数计数=1;

而(count它看起来是这样的-

public class PrintLines {
    public static void main(String[] args){
        java.io.File file = new java.io.File("myFile.txt");
        java.io.PrintWriter output = null;
        try {
            output = new java.io.PrintWriter(file);
        } catch (FileNotFoundException e) {
           // TODO Auto-generated catch block
           e.printStackTrace();
        }
        int count = 1;
        while (count <= 300) {
            output.println(count + " I love Java!");
            count++;
        }
        output.close();
    }
}
公共类打印行{
公共静态void main(字符串[]args){
java.io.File文件=新的java.io.File(“myFile.txt”);
java.io.PrintWriter输出=null;
试一试{
输出=新的java.io.PrintWriter(文件);
}catch(filenotfounde异常){
//TODO自动生成的捕捉块
e、 printStackTrace();
}
整数计数=1;

Java中的while(count异常是通过
try
catch
块来处理的。如果你声明你的方法抛出异常,那么你将在更高级别上处理异常。如果你想处理它,你必须在try-and-catch块中编写代码。你还可以捕获多种类型的异常

public class PrintLines {
    public static void main(String[] args) {
        java.io.File file;
        java.io.PrintWriter output;
        try {
           file = new java.io.File("myFile.txt");
           output = new java.io.PrintWriter(file);
           int count = 1;
           while (count <= 300) {
               output.println(count + " I love Java!");
               count++;
           }
       } catch(FileNotFoundException e) {// If the file does not exist
             e.printStackTrace();// Prints the error
       } catch(IOException e) {//any other io error
             e.printStackTrace();// Prints the error
       } finally {
            if(output!=null){
               output.close();
            }
       }
   }
}
公共类打印行{
公共静态void main(字符串[]args){
java.io.File文件;
java.io.PrintWriter输出;
试一试{
file=newjava.io.file(“myFile.txt”);
输出=新的java.io.PrintWriter(文件);
整数计数=1;

Java中的while(count异常是通过
try
catch
块来处理的。如果你声明你的方法抛出异常,那么你将在更高级别上处理异常。如果你想处理它,你必须在try-and-catch块中编写代码。你还可以捕获多种类型的异常

public class PrintLines {
    public static void main(String[] args) {
        java.io.File file;
        java.io.PrintWriter output;
        try {
           file = new java.io.File("myFile.txt");
           output = new java.io.PrintWriter(file);
           int count = 1;
           while (count <= 300) {
               output.println(count + " I love Java!");
               count++;
           }
       } catch(FileNotFoundException e) {// If the file does not exist
             e.printStackTrace();// Prints the error
       } catch(IOException e) {//any other io error
             e.printStackTrace();// Prints the error
       } finally {
            if(output!=null){
               output.close();
            }
       }
   }
}
公共类打印行{
公共静态void main(字符串[]args){
java.io.File文件;
java.io.PrintWriter输出;
试一试{
file=newjava.io.file(“myFile.txt”);
输出=新的java.io.PrintWriter(文件);
整数计数=1;

虽然(count是为Java新手准备的,并对这些内容进行了很好的解释。特别是,详细描述了异常和I/O。是的,I/O的代码示例也演示了正确的异常处理。

是为Java新手准备的,并对这些内容进行了很好的解释。特别是,描述了异常处理是的,I/O的代码示例也演示了正确的异常处理。

因为注释太短:

public class PrintLines {
    public static void main(String[] args) {    
        java.io.File file = new java.io.File("myFile.txt");
        try {
            final java.io.PrintWriter output = new java.io.PrintWriter(file);
            try {
                int count = 1;
                while (count <= 300) {
                    output.println(count + " I love Java!");
                    count++;           
                }
            } finally {
                output.close();
            }
            if (output.checkError()) {
                System.err.println("Failed to write file correctly.");
                System.exit(1);
                return;
            }
        } catch (java.io.FileNotFoundException exc) {
            System.err.println("Failed to write file correctly.");
            System.exit(1);
            return;
        }
    }
}
公共类打印行{
公共静态void main(字符串[]args){
java.io.File文件=新的java.io.File(“myFile.txt”);
试一试{
最终java.io.PrintWriter输出=新的java.io.PrintWriter(文件);
试一试{
整数计数=1;

而(计数因为评论太短:

public class PrintLines {
    public static void main(String[] args) {    
        java.io.File file = new java.io.File("myFile.txt");
        try {
            final java.io.PrintWriter output = new java.io.PrintWriter(file);
            try {
                int count = 1;
                while (count <= 300) {
                    output.println(count + " I love Java!");
                    count++;           
                }
            } finally {
                output.close();
            }
            if (output.checkError()) {
                System.err.println("Failed to write file correctly.");
                System.exit(1);
                return;
            }
        } catch (java.io.FileNotFoundException exc) {
            System.err.println("Failed to write file correctly.");
            System.exit(1);
            return;
        }
    }
}
公共类打印行{
公共静态void main(字符串[]args){
java.io.File文件=新的java.io.File(“myFile.txt”);
试一试{
最终java.io.PrintWriter输出=新的java.io.PrintWriter(文件);
试一试{
整数计数=1;

虽然(计数。注意,如果你不能处理IOException,你应该让你的方法抛出它。不过,你应该使用finally块关闭编写器。我认为你不希望你的main抛出异常。抛出异常意味着调用该方法的人必须捕获或抛出它。因为main是你的入口点,所以在这个程序中,除了UncaughtExceptionHandler之外,没有任何地方可以捕捉到它。UncaughtExceptionHandler默认情况下会打印一个很好的堆栈跟踪到
System.err
。对于面向有技术知识的读者的简单程序,这就足够了。没有人想检查写入文件是否真的有效了吗?我不这么认为。哦,它有效了。我在我被困于如何在头中没有IOException的情况下处理异常之前,我做了3次。注意,如果你不能处理IOException,你应该让你的方法抛出它。但是,你应该使用finally块来关闭编写器。我认为你不希望你的main抛出异常。抛出异常意味着什么都没有调用该方法将必须捕获或抛出它。由于main是您的入口点,因此在此程序中没有可以捕获它的位置……除了UncaughtExceptionHandler,默认情况下,它会打印一个漂亮的堆栈跟踪到
System.err
。对于用于