gpt4 book ai didi

java - 如何使用Try Catch Block捕获特定的自定义异常

转载 作者:行者123 更新时间:2023-12-01 19:33:50 25 4
gpt4 key购买 nike

我有一个 CustomException 类,如下所示:

public class CustomException extends RuntimeException
{
public CustomException(String message)
{
super(message);
}
}

当满足某个 if 条件时,我会抛出此异常,然后在单独的类中使用 Try Catch block 来打印自定义错误消息,如下所示:

catch (CustomException e)
{
System.out.println("Location already occupied");
}

我的问题是如何在 catch 中指定我所指的 CustomException。如果我抛出自定义异常,消息参数为“Tile Out of Bounds”,但随后再次将其抛出到其他地方,消息参数为“Tile Location Occupied”,我该如何捕获每个异常。

最佳答案

您无法根据消息捕获异常。要执行您想要执行的操作,您需要对自定义异常进行子类化:

public class TileOutOfBoundsException extends CustomException {
. . .
}

public class TileOccupiedException extends CustomException {
. . .
}

然后捕获每个子类,

. . .
catch (TileOutOfBoundsException e) {
System.out.println("Location out of bounds");
}

. . .
catch (TileOccupiedException e) {
System.out.println("Location occupied");
}

子类化在这里是否真正合适是另一个故事,并且是一个观点问题。

据我所知,您唯一的其他选择是捕获异常,然后针对您想要处理的每个案例手动检查消息。如果您决定更改消息,这可能会更加困惑,并且容易损坏。

关于java - 如何使用Try Catch Block捕获特定的自定义异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59239585/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com