Как я понимаю, класс исключений в Java определенно не является неизменным (такие методы, как initCause
и setStackTrace
дают некоторые подсказки об этом). Так это по крайней мере потокобезопасно? Предположим, у одного из моих классов есть поле вроде этого:
private final Exception myException;
Можно ли безопасно открыть это поле для нескольких потоков?
Я не готов обсуждать конкретные случаи, где и почему эта ситуация может возникнуть. Мой вопрос больше о принципе: могу ли я сказать, что класс, который предоставляет поле типа Exception, является поточно-ориентированным?
Другой пример:
class CustomException extends Exception
{
...
}
Является ли этот класс потокобезопасным?