public class ThrowException {
public static void main(String[] args) {
try {
foo();
}
catch(Exception e) {
if (e instanceof IOException) {
System.out.println("Completed!");
}
}
}
static void foo() {
// what should I write here to get an exception?
}
}
嗨!我刚开始学习异常并需要捕获异常,所以请任何人为我提供解决方案吗? 我会非常感激的。 谢谢!
答案 0 :(得分:17)
static void foo() throws IOException {
throw new IOException("your message");
}
答案 1 :(得分:6)
try {
throw new IOException();
} catch(IOException e) {
System.out.println("Completed!");
}
答案 2 :(得分:1)
throw new IOException("Test");
答案 3 :(得分:1)
我刚刚开始学习异常并需要捕获异常
抛出异常
throw new IOException("Something happened")
要捕获此异常最好不要使用Exception
,因为它是非常通用的,而是捕获您知道如何处理的特定异常:
try {
//code that can generate exception...
}catch( IOException io ) {
// I know how to handle this...
}
答案 4 :(得分:1)
如果目标是从foo()
方法抛出异常,则需要按如下方式声明:
public void foo() throws IOException{
\\do stuff
throw new IOException("message");
}
然后在你的主要:
public static void main(String[] args){
try{
foo();
} catch (IOException e){
System.out.println("Completed!");
}
}
请注意,除非声明foo抛出IOException,否则尝试捕获一个将导致编译器错误。使用catch (Exception e)
和instanceof
对其进行编码可以防止编译器错误,但这是不必要的。
答案 5 :(得分:1)
请尝试以下代码:
throw new IOException("Message");
答案 6 :(得分:0)
也许这有帮助...
请注意以下示例中捕获异常的更简洁方法 - 您不需要e instanceof IOException
。
public static void foo() throws IOException {
// some code here, when something goes wrong, you might do:
throw new IOException("error message");
}
public static void main(String[] args) {
try {
foo();
} catch (IOException e) {
System.out.println(e.getMessage());
}
}