java - 为什么 Formatter(String fileName) 构造函数在不处理 FileNotFoundException 的情况下不起作用?
问题描述
即使文件已经存在,当我不处理 FileNotFoundException 时,构造函数 Formatter(String fileName) 似乎也无法编译。
这是有效的代码:
import java.util.*;
public class CreatingFiles {
public static void main(String[] args) {
final Formatter MYFILE;
try {
MYFILE = new Formatter("john.txt");
System.out.println("File created");
}
catch (Exception e) {
System.out.println("Error!");
}
}
}
但是,当我删除 try/catch 块时:
import java.util.*;
public class CreatingFiles {
public static void main(String[] args) {
final Formatter MYFILE;
MYFILE = new Formatter("john.txt");
}
}
编译器告诉我必须抛出或捕获异常。那么为什么不处理异常就不能工作呢?
解决方案
构造函数Formatter(String) [ https://docs.oracle.com/javase/7/docs/api/java/util/Formatter.html#Formatter(java.lang.String)],抛出FileNotFound异常 [ https: //docs.oracle.com/javase/7/docs/api/java/io/FileNotFoundException.html],一个检查异常[ https://en.wikibooks.org/wiki/Java_Programming/Checked_Exceptions],所以你必须抓住它或重新扔掉它。
推荐阅读
- amazon-ec2 - 如何根据自定义标头值将 HTTP 流量分配到属于不同 EKS 集群(都在不同区域)的多个负载均衡器?
- html - 具有最大宽度的 CSS 网格单列
- swift - 向 CollectionView 两列结构添加全宽行
- flutter - flutter_inappwebview 如何将网站列表放入内容拦截器?
- ios - iPadOS 15 UITabBar 标题被截断
- javascript - 如何在多个子域上运行一段代码?
- c# - 如何从 c++ 项目调用 windows 窗体 c# 函数?
- python - 如何在 Ajax 符合数据结构中获取 Django 查询集?
- c# - Azure .NET 5 隔离函数以及如何使用函数绑定更新表存储
- c++ - 为什么 MSVC 编译器/优化器不会删除共享库中重复的函数调用,而是复制整个函数体?