为了账号安全,请及时绑定邮箱和手机立即绑定

不能抛出Exception类型的异常,异常类型必须是Throwable的子类

不能抛出Exception类型的异常,异常类型必须是Throwable的子类

德玛西亚99 2021-12-10 10:11:25
我在其他问题中搜索了这个问题,但仍然没有弄清楚 Throwable 的确切含义。阅读了一些关于它的文章(它的 superclas bla bla bla),但仍然不知道如何实现它。忘了说我是 Java 新手。任何建议将不胜感激:D这是异常类:class Exception {private int pDen;private int pMes;private int kDen;private int kMes;public Exception(int pDen, int pMes, int kDen, int kMes) {    super();    this.pDen = pDen;    this.pMes = pMes;    this.kDen = kDen;    this.kMes = kMes;}public void message(){    System.out.println("Isklucok");}public void promena(){    int tmpDen = 0;    int tmpMes = 0;    tmpDen = pDen;    pDen = kDen;    kDen = tmpDen;    tmpMes = pMes;    pMes = kMes;    kMes = tmpMes;}}这是我在其他类中运行的代码,我应该在其中捕获抛出的异常。try {        if(pMes > kMes)        {            throw new Exception(pDen,pMes,kDen,kMes);        }        else if(pMes == kMes)            if(pDen > kDen)            {                throw new Exception(pDen,pMes,kDen,kMes);            }    }    catch(Exception e)    {        e.message();        e.promena();    }
查看完整描述

3 回答

?
慕尼黑8549860

TA贡献1818条经验 获得超11个赞

使您的自定义异常从Throwable层次结构中扩展某些内容。


例如


// Exception here is java.lang.Exception, not the class from your example

public class MyException extends Exception {


    // ...


}


查看完整回答
反对 回复 2021-12-10
?
精慕HU

TA贡献1845条经验 获得超8个赞

Exception 类及其子类是 Throwable 的一种形式,它指示合理的应用程序可能想要捕获的条件。


在大多数情况下,您的例外情况将是以下之一:


算术异常

ArrayIndexOutOfBoundException

类未找到异常

IO异常

NoSuchMethodException ...

Error 是 Throwable 的一个子类,它指示合理的应用程序不应尝试捕获的严重问题。


这两个Exception和Error是的子类Throwable。


如果您不仅需要捕获Exceptions但是Errors,您应该使用Throwable. 但:


大多数此类错误是异常情况。ThreadDeath 错误虽然是“正常”情况,但也是 Error 的一个子类,因为大多数应用程序不应该尝试捕获它。


如果你想捕捉像ThreadDeath错误这样的事情,你可以使用 Throwable。这可能是一种非常罕见的情况。


在您的示例中,如果您只想检查数字,则可以使用以下内容:


public static void check(int pDen, int pMes, int kDen, int kMes) {


    if (pMes > kMes) {

        throw new IllegalArgumentException ("Your message.....");

    } else if (pMes == kMes) {

        if (pDen > kDen) {

            throw new IllegalArgumentException ("Your message.....");

        }

    }

}


查看完整回答
反对 回复 2021-12-10
?
米脂

TA贡献1836条经验 获得超3个赞

请忽略建议您实现自己的Exception类的答案。Java 有它自己的:java.lang.Exception. 只需使用它,并在需要时扩展它。拥有自己的Throwable. 但不是从标准扩展的Exception情况非常罕见。


查看完整回答
反对 回复 2021-12-10
  • 3 回答
  • 0 关注
  • 1073 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号