java - 未处理的异常:java.io.IOException
问题描述
我在这里有我的代码块。它告诉我 IOException 未处理。
public static void main(String[] args) {
FileWriter locFile = null;
try{
locFile = new FileWriter("locFile.txt");
for(Location location : locations.values()){
locFile.write(location.getLocationID()+", "+location.getDescription()+"\n");
}
}catch(IOException e){
throw new IOException("My message");
e.printStackTrace();
}finally{
try{
if(locFile != null){
System.out.println("Attempting to close locFile");
locFile.close();
}
}catch(IOException e){
e.printStackTrace();
}
}
}
我认为我可以做的一种方法是这样的:
public static void main(String[] args) throws IOException{
...
}
但是我可以在 catch 块内抛出异常吗?这样做是否实用或普遍?
解决方案
如果您删除以下调用,throw
那么您的代码对我来说运行良好:
throw new IOException("My message");
如果您确实想重新抛出IOException
,那么您需要将您的main()
方法标记为抛出异常,例如
public static void main(String[] args) throws IOException
在某些情况下,您会想要做这样的事情。但更典型的是,我所看到/所做的是,如果一个方法抛出异常,您可能不会费心去捕获该方法中的任何内容。
推荐阅读
- matlab - 使用 Matlab Coder 对字符串元胞数组进行字符串比较
- reactjs - 剪辑路径动态转换以填充容器
- python - axios响应是一个字符串,里面有回车,应该是一个数组
- aws-device-farm - 为什么 Appium python find_element_by_id 在 AWS 设备场中失败但在本地工作?
- github - 创建 github 站点/自定义页面/多个项目
- python - one_shot_iterator,占位符,无法捕获占位符
- c - 如何在不输入命令提示符的情况下将光标移动到下一行?
- c++ - 将一个类的对象声明为另一个类的成员 (C++)
- spring - xwEx 对 log4j2 的含义?
- c# - C#:通过单例类访问类的实例时如何修复 System.TypeInitializationException?