java 输入流问题 希望大神能解答

注释那一句,为什么注释掉这句后会导致catch(IOException e)这句出错

import java.io.*;
public class test2 {
public static void main(String args[]) {

   File myfile = new File("d:\123456.txt");
   if(myfile.exists()) {
        System.out.println(myfile.getName());
        System.out.println(myfile.getAbsolutePath());

   }else {
        try {
             System.out.println("对不起,制定文件没找到!");                
           //  myfile.createNewFile();   //这句注释掉后程序出现错误
             System.out.println("已经创建一个新文件");
        }catch (IOException e) {

             System.out.println("信息出错!"+e);
        }
   }

}
}

try语句块里面需要有异常抛出你才能 写catch语句来捕获异常,你把myfile.createNewFile(); 语句去掉了,try语句里面都没有异常了就不能写catch语句了,当写了myfile.createNewFile(); 语句的时候除了catch异常还可以在方法的定义处抛出异常,public static void main(String args[]) throws IOException{},建议你看一下java的异常章。节

可能抛出异常的代码都被注释了,还try catch个毛线呀

myfile.createNewFile(); 这个注释就不能try catch了

异常类使用Exception的话就不会报错,但是你用的是IOException,他会检查你的语句时候可能抛出IOException,不检查的话如果你的语句抛出了个NullpointException那它就捕获不到这个异常了,程序就挂了