我在其他问题上了解到了这个问题,但仍然没有弄清楚什么才是真正意义上的“Throwable”。读几篇关于它的文章(它的“蓝蓝”),但仍然不知道如何实现它。忘了提一下我是java新手。如有任何意见,我们将欣然接受:
下面是异常类:
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();
}发布于 2018-10-26 10:40:27
使您的自定义异常从Throwable层次结构中扩展。
例如
// Exception here is java.lang.Exception, not the class from your example
public class MyException extends Exception {
// ...
}发布于 2018-10-26 11:39:35
类异常及其子类是Throwable的一种形式,它指示合理的应用程序可能希望捕获的条件。
在大多数情况下,您的例外情况如下:
错误是Throwable的子类,它指示合理的应用程序不应该试图捕捉的严重问题。
Exception和Error都是Throwable的子类。
如果您不仅需要捕获Exceptions,还需要捕获Errors,则应该使用Throwable。但是:
大多数这样的错误都是不正常的。ThreadDeath错误虽然是“正常”条件,但也是错误的子类,因为大多数应用程序都不应该试图捕捉它。
如果您想捕获像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.....");
}
}
}发布于 2018-10-26 10:46:29
请忽略那些建议您实现自己的Exception类的答案。Java有自己的:java.lang.Exception。只要使用它,如果需要的话可以扩展它。有自己的Throwable,但不是从标准Exception扩展的情况是非常罕见的。
https://stackoverflow.com/questions/53006884
复制相似问题