Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java PrintWriter:如果文件在未找到时自动创建,为什么要处理FileNotFoundException?_Java_File_Printwriter - Fatal编程技术网

Java PrintWriter:如果文件在未找到时自动创建,为什么要处理FileNotFoundException?

Java PrintWriter:如果文件在未找到时自动创建,为什么要处理FileNotFoundException?,java,file,printwriter,Java,File,Printwriter,在以下SSCCE中,即使我从给定位置/路径(即“D:\\Eclipse workspace\\SAMPLES AND OTHER SNIPPETS\\SoapCallResults.txt”)删除此文件,我也不会得到FileNotFoundException 相反,PrintWriter似乎会在找不到文件时创建该文件 如果Printwriter在找不到文件的情况下创建该文件,为什么我们要尝试处理FileNotFoundException(如果我们没有用try/catch或添加throws子句将其

在以下SSCCE中,即使我从给定位置/路径(即
“D:\\Eclipse workspace\\SAMPLES AND OTHER SNIPPETS\\SoapCallResults.txt”)删除此文件,我也不会得到
FileNotFoundException

相反,
PrintWriter
似乎会在找不到文件时创建该文件

如果
Printwriter
在找不到文件的情况下创建该文件,为什么我们要尝试处理
FileNotFoundException
(如果我们没有用
try/catch
或添加
throws
子句将其包围,编译器会抱怨)而它永远不会被抛出

package com.general_tests;

import java.io.FileNotFoundException;
import java.io.PrintWriter;

public class PrintWriterFileNotFoundExceptionTest {

    public static void main(String[] args) {
        String myName = "What ever my name is!";
        PrintWriter printWriter = null;
        try {
            printWriter = new PrintWriter("D:\\Eclipse Workspaces\\SAMPLES AND OTHER SNIPPETS\\SoapCallResults.txt");
            printWriter.println(myName);
        } catch (FileNotFoundException e) {
            System.out.println("FILE NOT FOUND EXCEPTION!");
            e.printStackTrace();
        } finally {
            if (printWriter != null) { printWriter.close(); }
        }

    }

}

FIleNotFoundException是选中的异常。如果代码块抛出这些异常,则需要处理这些类型的异常。对于未检查的异常类型,您不必处理(非强制)。您真的能保证文件已经创建,但没有损坏,或者磁盘记录没有损坏吗?还有,看看这个-

最重要的是,您的构造函数正在抛出FileNotFoundException(请看这里-),您必须捕获它(因为它已被选中)


提示-对于Eclipse,请尝试查看ctrl+SPACe显示的对象方法。如果您的JavaDoc位于正确的位置,您将看到对方法所做操作的所有解释,包括“Throws:SomeException”位。这是调用方法时需要查找的内容(即是否需要为此使用try-catch块)。

FIleNotFoundException是选中的异常。如果代码块抛出这些异常,则需要处理这些类型的异常。对于未检查的异常类型,您不必处理(非强制)。您真的能保证文件已经创建,但没有损坏,或者磁盘记录没有损坏吗?还有,看看这个-

最重要的是,您的构造函数正在抛出FileNotFoundException(请看这里-),您必须捕获它(因为它已被选中)


提示-对于Eclipse,请尝试查看ctrl+SPACe显示的对象方法。如果您的JavaDoc位于正确的位置,您将看到对方法所做操作的所有解释,包括“Throws:SomeException”位。这就是调用方法时需要查找的内容(即是否需要为此使用try catch块)。

将路径中的
Eclipse工作区
替换为
foo
,然后查看是否出现异常。可以创建文件本身,但不能创建其上方的整个路径

也可以使路径保持原样,但在文件上设置只读、隐藏和系统属性。操作系统将无法写入或创建它

另一个变体:修改文件的ACL,使您的用户没有写入权限


还有很多。

foo
替换路径中的
Eclipse工作区
,看看是否出现异常。可以创建文件本身,但不能创建其上方的整个路径

也可以使路径保持原样,但在文件上设置只读、隐藏和系统属性。操作系统将无法写入或创建它

另一个变体:修改文件的ACL,使您的用户没有写入权限


还有很多。FileNotFoundException是一个选中的异常,它简单地表示您必须捕获它或将它添加到throws子句中

我希望这能回答您的问题,即即使创建了一个文件(如果不存在),为什么我们实际上需要它-

从-


FileNotFoundException-如果给定的文件对象不表示现有的可写常规文件,并且无法创建该名称的新常规文件,或者如果在打开或创建文件时发生其他错误
FileNotFoundException
是选中的异常,也就是说,您要么捕获它,要么将其添加到throws子句中

我希望这能回答您的问题,即即使创建了一个文件(如果不存在),为什么我们实际上需要它-

从-


FileNotFoundException-如果给定的文件对象不表示现有的可写常规文件,并且无法创建该名称的新常规文件,或者如果在打开或创建文件时发生其他错误,文档说明:FileNotFoundException-如果给定的字符串不表示现有文件,无法创建可写常规文件和该名称的新常规文件,或者如果在打开或创建文件时发生其他错误,权限等可能会阻止编写器创建该文件。Downvoter:请告诉我进行downvote的原因,否则没有改进的机会!文档说明:FileNotFoundException-如果给定字符串不表示现有的可写常规文件,并且无法创建该名称的新常规文件,或者在打开或创建filePermissions时发生其他错误,等等,可能会阻止编写者创建文件。Downvoter:请告诉我downvote的原因,否则就没有改进的机会!非常感谢您分享此提示。这是非常有用的。非常感谢你分享的提示。这是非常有用的。