gpt4 book ai didi

java - 从类内的多个方法捕获异常

转载 作者:行者123 更新时间:2023-12-02 08:09:10 24 4
gpt4 key购买 nike

在 Java 中,我有一个类,其中包含一些抛出相同自定义异常的方法(自定义异常扩展了“Exception”类):

private void setAColor(float r, float g, float b, float a) throws AnException {}
private void setBColor(float r, float g, float b, float a) throws AnException {}
private void setCColor(float r, float g, float b, float a) throws AnException {}

我希望能够捕获它们并在类中处理它们,而不是让用户处理这些异常。每个方法异常都会以完全相同的方式被捕获。我不想在每个方法中都放置完全相同的 try/catch 方法 block 。有没有办法可以在方法体之外、类内部捕获这些异常?

感谢您抽出宝贵的时间,即使您无法帮助我。

附加更多信息:
这些方法可能会被调用直到某个点:在调用将变量“isImmutable”设置为 true 的方法之后,这些方法应该不再能够更改有关对象的任何内容。因此,如果在“isImmutable”设置为 true 之后调用这些方法之一,那么它们应该抛出一个名为“ImmutableException”的异常。对于/这个特定的实现/,我希望能够自己处理这些,而不是转到调用这些方法的代码中的每个点并以完全相同的方式处理它们。

最佳答案

我不想在每个方法中都放置完全相同的 try/catch 方法 block 。

那就不要抛出异常。

有没有办法可以在方法体之外、类内部捕获这些异常?

没有。

对于/这个特定的实现/,我希望能够自己处理这些方法,而不是转到调用这些方法的代码中的每个点并以完全相同的方式处理它们。

这没有任何意义。如果检测到错误,您打算如何报告它?

调用将变量“isImmutable”设置为 true 的方法后,这些方法应该不再能够更改有关对象的任何内容。因此,如果在“isImmutable”设置为 true 之后调用这些方法之一,那么它们应该抛出一个名为“ImmutableException”的异常。

您是否考虑过让您的异常成为 RuntimeException 的子类?然后调用者不需要声明异常处理程序——如果没有处理程序,程序将由于“未处理的异常”而终止。

关于java - 从类内的多个方法捕获异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7701098/

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