java - 如果方法抛出未在方法声明中指定的异常, "throws"会发生什么

标签 java exception throws

我从来没有使用过“throws”子句,今天一位 friend 告诉我,我必须在方法声明中指定该方法可能抛出的异常。但是,我一直在使用异常而没有问题,那么,如果实际上需要它,为什么需要它呢?

最佳答案

Java 有两种不同类型的异常:checked 异常和unchecked 异常。

未经检查的异常是 RuntimeException 的子类,您不必添加 throws 声明。所有其他异常都必须在方法体中处理,要么使用 try/catch 语句,要么使用 throws 声明。

未经检查的异常示例:IllegalArgumentException 有时用于通知已使用非法参数调用方法。无需 throw 。

已检查异常的示例:IOException 包中的某些方法可能会抛出 java.io。使用 try/catch 或将 throws IOException 添加到方法声明并将异常处理委托(delegate)给方法调用者。

关于java - 如果方法抛出未在方法声明中指定的异常, "throws"会发生什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4889711/

相关文章:

java - 何时使用 "throws RuntimeException"Java

java - 使用 Talend 根据输入的关键字将 HTML 搜索页面提取到 .txt 文件中。如何端到端解析这些数据并将其写入 MySQL?

java - Intellij + Gradle:属性文件

java - 使用谷歌发布者API上传图标和屏幕截图

java - 二维按钮网格的最佳 Swing 布局?

php - Laravel 表单 - 路由未定义

java - actionPerformed 中的 CloneNotSupportedException

C# 在 Process.Kill() 期间仅完成了 ReadProcessMemory 或 WriteProcessMemory 请求的一部分

c++ - 0xC0000005:访问冲突读取位置 0x00000004 与 QStack<std::map<std::string,std::string >> appending

c# - 如何在 C# 中报告异常?