首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Java例外原理

Java例外原理
EN

Stack Overflow用户
提问于 2012-01-05 18:41:04
回答 6查看 511关注 0票数 4

这一次是个相当理论性的问题。所以我在Eclipse中使用这个函数:

代码语言:javascript
运行
复制
CsvReader csv = new CsvReader("src/maindroite.csv");

因为“未处理的异常类型FileNotFoundException”而无法运行。好的,我知道我必须为文件不存在的情况添加一些东西,在这种情况下,我通常会添加几行来处理异常并丢弃它。但是我的问题是:为什么我需要捕获异常,即使文件确实存在?实际上,为什么我甚至对某些函数有这个例外的东西,而没有其他的呢?

例如,假设我试图运行:

代码语言:javascript
运行
复制
ImageIcon icon1 = new ImageIcon("src/square.jpg");
ImageIcon icon2 = new ImageIcon("src/circle.jpg");

其中存在"square.jpg“,但不存在"circle.jpg”。该程序将创建icon1,但不会创建icon2,因为它不能。但是我不需要为图像不存在的情况添加ExceptionHandler。这两种功能有什么区别?

总结一下:

  • 当文件ExceptionHandler存在时,为什么要添加
  • 为什么我必须为某些函数而不是其他函数添加一个ExceptionHandler?

谢谢!

EN

Stack Overflow用户

回答已采纳

发布于 2012-01-05 18:47:17

当文件确实存在时,为什么我必须添加一个ExceptionHandler?

基本上必须添加它,因为您不能编写这样的条件代码,简而言之,编译器不可能在运行时之前知道该文件是否存在,因此编译器强制yo放置一个/catch块,因为FileNotFoundException是一个 已选中 异常。

为什么我必须为某些函数而不是其他函数添加一个ExceptionHandler?

**NOT*只需将try/catch块添加到抛出检查异常的任何内容,即**NOT*RuntimeExceptionError类继承的任何内容。ErrorRuntimeException的子类不检查异常,您可以将try/catch放到编译器不关心的位置。由于ImageIcon的构造函数不抛出任何类型的异常,如果图像不存在,则只返回null,因此不需要执行try/catch块。

票数 4
EN
查看全部 6 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8747921

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档