Try catch能用于捕获自定义的异常吗?

class MyException extends Exception {
public MyException() {
System.out.println("自定义异常");
}
}
public class Test3 {
public static void main(String args[]) throws MyException {
for (int i = 0; i < 10; i++) {
try{
if(i > 5){
...............

}
}catch(MyException e){
}
}// for
}
}

怎么改这个程序才可以?或者说自定义的异常只能用throw 抛出??

语句会抛出自定义的异常,这种异常程序要求必须try-catch处理或者声明抛出异常,就是throwsXXException(自定义异常)如果想要重试还是异常就终止的话,需要声明抛出异常,也就是告诉虚拟机,运行语句1可能会抛出异常,并且在catch中的语句不加trycatch,这样在抓到第一次异常以后,会第二次执行语句1,如果此时再次抛出异常,则直接抛给调用者,如果调用者没有对该异常进行处理,那么程序会弹出提示异常关闭。
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2016-02-21
给你修改了下,这样就可以了
class MyException extends Exception {
public MyException()
{
System.out.println("自定义异常");

}
}
class Test10 {
public int devide(int x, int y) throws MyException {
if (y == 0){
throw new MyException();
}
return x / y;
}
}
class Test5 {
public static void main(String[] args) {
try {
int result = new Test10().devide(3, 0);
System.out.println("the result is " + result);
}catch (MyException e) {
System.out.println(e.getMessage());
}

}}追问

能解释一下么?虽然很容易看懂 但是为什么要在Test5中才能用到try catch??

追答

你需要标识可能抛出的异常

本回答被提问者和网友采纳
第2个回答  推荐于2018-03-10
省略号的地方增加“throw new MyException();”

因为你上面没有抛出MyException的可能性,catch块肯定捕获不到MyException

为什么使用Try,Catch捕获异常,程序依然Crash
1.只有在try块内部的代码所抛出的异常才会被捕获,如果是try块范围外的代码,就不会捕捉异常。2.catch需要指定异常类型。只能够捕获指定的异常类型。如果发生崩溃的异常并没有列在catch中,那么也不会捕获该异常。最终导致程序崩溃。

c++ trycatch能不能捕获所有异常 100分
在C++中,try-catch语句通常用于捕获并处理程序运行时可能出现的异常。很多人可能会认为,只要在catch后面加上三个点(*),就能捕获所有类型的异常。然而,这种理解并不全面。确实,catch(*)可以捕获未指定类型的异常,包括标准库中定义的异常和用户自定义的异常。然而,它并不能捕获某些特定且非预期的系统...

在java语言中try-catch的catch中能否再加try--catch?
当然可以,但是不建议这么去做,你可以把你需要捕获异常的代码块放在一个try catch中,捕获你可能出现的所有异常就醒了,比如:try{ }catch(Exception1){ }catch(Exception2){ }。。。这种捕获是顺序捕获,如果觉得麻烦,就捕获所有异常!

前端中 try-catch 捕获不到哪些异常和错误
1.1 跨域错误:当使用 XMLHttpRequest 进行跨域请求,若目标服务器不支持,浏览器将提示错误,但 try-catch 机制无法捕获到这类错误。解决方法是通过 xhr.onerror 事件监听进行处理。1.2 异步错误:异步操作如 Promise 的 reject 或 async\/await 的异常,try-catch 可能捕获不到。正确的做法是在异步...

PHP TRY CATCH具体求解
PHP的try catch是捕获异常,但它却无法捕获PHP的内部异常,必须是经过throw语句抛出的异常,它才能正常捕获,这也意味着,如果你的try代码块中,没有任何throw语句,或者包含了throw语句的函数,那么,try catch语句就是废品,嘛用没有。但是,在大型网站的构建中,用于建设一套自己的自定义错误处理机制,...

JavaScript 中 try...catch 的 10 个使用技巧
使用 try...catch 可以捕获并处理代码中的异常,避免应用崩溃。不过,它的功能远不止于此,通过合理运用,可以显著提高代码的质量和健壮性。1. **捕获所有异常**:通过定义一个不带参数的 catch 块,可以捕捉到所有异常,包括语法错误、运行时错误和自定义错误。然而,建议在生产环境中明确捕获特定类型...

何为异常? Try…catch机制的作用
异常就是可以使应用程序意外终止的状况 异常还分为自定义异常和Exception类中定义好的异常 try ...catch可以抓异常并处理异常、抛出异常(调用时再做处理)程序不意外终止,能够使程序正常执行完毕,提高代码的健壮性。一段健壮的代码肯定多出使用try...catch处理,例如计算机让用户输入两个数并且输入运算...

C++异常处理机制 try-catch-throw
C++的异常处理机制为程序中处理运行时异常提供了一种高效和灵活的方法。当函数在执行过程中遇到预料之外的状况时,通过throw关键字抛出异常,异常可以携带错误信息,如std::exception或自定义异常类。然后,使用try-catch结构捕获并处理这些异常。在try块中,如果出现异常,控制权将立即转移到与异常类型匹配的...

C++ try catch 异常处理
try关键字用于包裹一段可能产生错误的代码,catch则负责捕获并处理这些错误。throw用于主动抛出错误,其表达式的类型决定了异常的类型。在catch块中,通过异常声明来指定处理特定类型的异常。C++标准库提供了多种预定义的异常,同时,程序员也可以通过继承exception类来创建自定义的异常类型,以满足特定场景的...

JavaScript try catch 处理语句
异常是用来捕获错误信息的。可以进行错误的快速定位。一般我们只对有可能出现异常的代码进行捕获异常,或者对我们抛出的自定义异常进行捕获。不是每个语句都要加try{}catch(e){}

相似回答