我在其他问题中都提出了这个问题,但仍然没有弄清楚 到底意味着什么?阅读有关它的几篇文章(它的超级技巧bla bla bla),但仍然不知道如何实现它。忘记提及我是Java的新手。任何建议将不胜感激:D
这是Exception类:
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();
}
答案 0 :(得分:2)
使您的自定义异常扩展到Throwable
层次结构中。
例如
// Exception here is java.lang.Exception, not the class from your example
public class MyException extends Exception {
// ...
}
答案 1 :(得分:2)
Exception类及其子类是Throwable的一种形式 这表明合理的应用程序可能想要的条件 抓住。
在大多数情况下,您的例外情况将是以下情况之一:
错误是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.....");
}
}
}
答案 2 :(得分:1)
请忽略建议您实现自己的Exception
类的答案。 Java有其自己的:java.lang.Exception
。只需使用它,并在需要时对其进行扩展。拥有自己的Throwable
但没有超出标准Exception
的情况很少见。
答案 3 :(得分:0)
您将必须创建一个包含所需Exception
的自定义Constructors
类,如下所示:
public class CustomException extends Exception {
/* Optional: Include Serial UID */
public CustomException(Throwable t) {
super(t);
}
public CustomException(int pDen, int pMes, int kDen, int kMes) {
/* Handle Info & Throw Exception */
}
}
然后您可以按以下方式引发异常,
throw new CustomException(pDen,pMes,kDen,kMes);
答案 4 :(得分:0)
在编写任何Java程序时要避免此常见错误的要点:
Exception
类导入任何软件包。Exception
。throw
。答案 5 :(得分:-1)
在您的自定义类中扩展了Throwable。它的工作
class Exception extends Throwable {
//your code
}
答案 6 :(得分:-1)
当我没有将异常类型导入到捕获它的类中时,我遇到了这个异常