我认为这是基本的东西,但我不知道该怎么做。为什么我会IOException never thrown in body of corresponding try statement
public static void main(String[] args)
{
File inputFile = null ;
try
{
inputFile = new File("records.txt") ;
}
catch (IOException e)
{
System.out.print("file not found!") ;
}
答案 0 :(得分:5)
File构造函数本身并没有做太多。
直到你真正开始执行实际操作才能抛出IOExceptions。
答案 1 :(得分:5)
它永远不会抛出IOException。创建File对象不会将其连接到磁盘上的任何内容。也就是说,没有IO。
如果您尝试从磁盘上没有相应文件的File对象读取或写入,您将获得IOExceptions。例如,如果您尝试从实际上不在磁盘上的文件中获取“循环路径”。
答案 2 :(得分:2)
因为您可以使用您想要的任何字符串来实例化文件对象。当您尝试读取/写入/打开实际文件时,稍后会收到异常。
答案 3 :(得分:1)
File(String)
不会抛出IOException
,因此您当时无法抓住它。
答案 4 :(得分:0)
如果要检查文件是否存在,请使用file.exists()
执行此操作。除此之外:
永远不会吞下异常 - 始终记录堆栈跟踪或重新抛出异常(例如将其包装在运行时异常中)
不依赖于程序流程的异常处理 - 这些应该是例外情况。