On Wed, 25 May 2022 16:59:25 GMT, Jonathan Gibbons <j...@openjdk.org> wrote:

>> test/langtools/jdk/javadoc/doclet/testDocletExample/TestDocletExample.java 
>> line 71:
>> 
>>> 69:         var entryPointSnippet = snippets.getSnippetById(dc, 
>>> "entry-point");
>>> 70:         if (entryPointSnippet == null) {
>>> 71:             throw new Error("Cannot find snippet \"entry-point\"");
>> 
>> I understand it as follows. Although this code now throws generic `Error` 
>> instead of `NullPointerException`, which the bug reporter observed, we 
>> shouldn't see that `Error` in circumstances similar to those of bug 
>> reporter. This is because in those circumstances the code will throw 
>> `ConfigurationException` earlier, at construction time, so we won't reach 
>> this check. Do I understand it correctly?
>
> Yes. Although we could throw NPE even here, I was wanting to throw something 
> that indicates the test is dysfunctional, as compared to failing or crashing.

The rationale that you provided reminds of `new FileInputStream(java.io.File)` 
that throws `FileNotFoundException`. Unlike not finding a file, not finding a 
particular snippet is an unexpected, unrecoverable programming error. I cannot 
imagine a reasonable test that checks that some snippet is not there.

-------------

PR: https://git.openjdk.java.net/jdk/pull/8796

Reply via email to