gpt4 book ai didi

java - 什么时候适合使用 IllegalAccessException?

转载 作者:太空宇宙 更新时间:2023-11-04 07:00:54 24 4
gpt4 key购买 nike

假设您有一个名为 Timer 的类。当用户尝试调用方法 Timer#start() 时,代码会检查计时器是否已启动。如果有,则无法再次启动。现在,假设这个类是库/API 的一部分。开发人员无法知道该方法没有被不当调用,因此他们希望引起对任何不当调用的注意。有两种方法可以做到这一点:a) 打印一条简单的错误消息(某某不恰本地调用了某个方法),或者 b) 抛出异常。

在我看来,最有意义的异常是 IllegalAccessException,尽管这并不是 Sun 所说的意图。然而,我见过它在与可见性无关的情况下使用,只是抛出它来引起对错误调用的注意。我的问题是,这种情况是否需要(哈哈,双关语)所说的异常(exception),或者是否有更好的适合它的情况?或者,最好创建一个新的错误行还是简单地打印错误行?

最佳答案

根据您的要求,似乎 IllegalStateException 更合适。当您的类(class)正在管理计时器的某些状态时。

来自 IllegalStateException 的 Java 文档:

Signals that a method has been invoked at an illegal or inappropriate time. In other words, the Java environment or Java application is not in an appropriate state for the requested operation.

来自IllegalAccessException的Java文档,它说:

An IllegalAccessException is thrown when an application tries to reflectively create an instance (other than an array), set or get a field, or invoke a method, but the currently executing method does not have access to the definition of the specified class, field, method or constructor.

所以,IllegalAccessException 根本不合适。

关于java - 什么时候适合使用 IllegalAccessException?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22125102/

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