Java 不能引发exception类型的异常,异常类型必须是Throwable的子类
我在其他问题中研究这个问题,但仍然没有弄明白 什么是可丢弃的。读了一些关于它的文章(它的superclas bla bla bla),但仍然不知道如何实现它。忘了提到我是java新手。任何建议都将被感激地接受:D 以下是异常类:Java 不能引发exception类型的异常,异常类型必须是Throwable的子类,java,exception,throwable,Java,Exception,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 kDe
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();
}
使您的自定义异常扩展了可丢弃的
层次结构中的某些内容
比如说
// Exception here is java.lang.Exception, not the class from your example
public class MyException extends Exception {
// ...
}
使您的自定义异常扩展了可丢弃的层次结构中的某些内容
比如说
// Exception here is java.lang.Exception, not the class from your example
public class MyException extends Exception {
// ...
}
在自定义类中,扩展了Throwable。它起作用了
class Exception extends Throwable {
//your code
}
在自定义类中,扩展了Throwable。它起作用了
class Exception extends Throwable {
//your code
}
您必须创建一个自定义的异常
类,其中包含所需的构造函数
,如下所示:
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);
您必须创建一个自定义的异常
类,其中包含所需的构造函数
,如下所示:
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);
请忽略建议您实现自己的异常
类的答案。Java有自己的:Java.lang.Exception
。只要使用它,并在需要时扩展它。拥有自己的可丢弃的,但不从标准异常扩展的情况非常罕见。请忽略建议您实现自己的异常类的答案。Java有自己的:Java.lang.Exception
。只要使用它,并扩展它,如果需要。拥有自己的可丢弃的,但不从标准例外扩展的情况非常罕见
类异常及其子类是可丢弃的一种形式
这表示合理的应用程序可能希望满足的条件
接住
在大多数情况下,您的例外情况如下:
- 算术异常
- ArrayIndexOutOfBoundException
- ClassNotFoundException
- IOException
- 没有任何异常
错误是Throwable的一个子类,表示存在严重问题
一个合理的应用程序不应该试图抓住
Exception
和Error
都是Throwable
的子类
如果您不仅需要捕获异常
,而且还需要捕获错误
,那么您应该使用Throwable
。但是:
大多数此类错误都是异常情况。线程死亡错误,
虽然是“正常”条件,但也是错误的一个子类,因为大多数
应用程序不应该试图捕获它
如果您想捕获像ThreadDeath
error这样的错误,您可以使用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.....");
}
}
}
类异常及其子类是可丢弃的一种形式
这表示合理的应用程序可能希望满足的条件
接住
在大多数情况下,您的例外情况如下:
- 算术异常
- ArrayIndexOutOfBoundException
- ClassNotFoundException
- IOException
- 没有任何异常
错误是Throwable的一个子类,表示存在严重问题
一个合理的应用程序不应该试图抓住
Exception
和Error
都是Throwable
的子类
如果您不仅需要捕获异常
,而且还需要捕获错误
,那么您应该使用Throwable
。但是:
大多数此类错误都是异常情况。线程死亡错误,
虽然是“正常”条件,但也是错误的一个子类,因为大多数
应用程序不应该试图捕获它
如果您想捕获像ThreadDeath
error这样的错误,您可以使用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.....");
}
}
}
编写任何Java程序时避免此常见错误的要点:
确保您没有为异常导入任何包
如果您找到此项的任何导入,请将其删除
您可以通过扩展异常类来实现
或者从方法中抛出一个异常
创建自定义消息时,请使用throw
,该消息将与方法上的throws关键字一起抛出
编写任何Java程序时避免此常见错误的要点:
确保您没有为异常导入任何包
如果您找到此项的任何导入,请将其删除
您可以通过扩展异常类来实现
或者从方法中抛出一个异常
创建自定义消息时,请使用throw
,该消息将与方法上的throws关键字一起抛出
为什么要创建自己的异常类而不是使用例如IllegalArgumentException或IllegalStateException?为什么要创建自己的异常类而不是使用例如IllegalArgumentException或IllegalStateException?