我从来没有使用过“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/