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