Сообщения «строка ошибки» предназначены для предоставления дополнительной информации в целях отладки. Они могут различаться в разных реализациях, версиях или средах. То же самое относится в целом ко всем строкам сообщений об исключениях (Throwable.getMessage()
).
Код приложения должен , а не полагаться на точный текст сообщений об исключении, чтобы определить причину исключения. Ваше предложение использовать instanceof
вместо проверки причины исключения является гораздо лучшим решением.
Edit:
Если вам абсолютно необходимо проверить подробное сообщение, как это, кажется, происходит в вашем случае (поскольку getCause()
возвращает null
), то я бы порекомендовал проверить, содержит ли подробное сообщение имя конкретного переноса Исключение, которое вы проверяете (например, java.net.ConnectException
). В конце концов, это та же самая информация, которую вы получили бы, если бы getCause()
не возвращал null
в первую очередь, и должны минимизировать зависимости с точным текстом подробного сообщения.