Собственный метод fillInStackTrace в open-jdk делает вызов JVM_FillInStackTrace (env, throwable) Непоставлен ли источник этого метода?Внутренние исключения Java
throw - инструкция jvm athrow. Нечто похожее на прыжок в сборке Jvm сам по себе является собственным кодом, поэтому все, что реализовано в jvm, тоже является родным. Так есть throw native? Иными словами, Внутренний вызов fillInStackTrace не несет затрат на обычный вызов JNI? (и стоимость заполнения трассировки стека)
Является ли уловка попыток для кэшированных исключений гарантией работы? Как будут заполнены таблицы исключений. Для тех же самых исключений мне будет много разных блоков catch?
Действительно ли они являются дорогостоящими в веб-приложении (или с аналогичными задержками)? Скажите веб-службу get/employee/{invalid_id} throwing javax.ws.rs NotFoundException вместо использования if/else для возврата ответа 404. Учитывая стоимость HTTP-запроса, ответа и объекта-сериализации/десериализации Json, стоимость исключения невелика.
Вообще говоря, заполнение трасс стека относительно дорого.Это может быть приемлемым для случаев, которые должны быть редки на практике, но простая логика 'if' /' else' будет быстрее, если она доступна. –
IIRC, это что-то вроде 95% стоимости выброса нового исключения. – chrylis
* «Действительно ли они дорогостоящие» * - нет ответа на генрал, сравнивайте ваши данные. – the8472