Sitemap
Sidarta Silva

Sidarta Silva

java.lang.RuntimeException

1 min readJul 28, 2023

A classe RuntimeException conta com um construtor muito poderoso, mas meio desconhecido, que recebe dois parâmetros adicionais, além de message e cause: enableSuppression e writableStackTrace:

protected RuntimeException(
String message,
Throwable cause,
boolean enableSuppression,
boolean writableStackTrace) {

super(message, cause, enableSuppression, writableStackTrace);
}

Esses dois parâmetros são muito importantes, porque impactam muito no desempenho de uma aplicação de alta performance. Mas por quê?

Get Sidarta Silva’s stories in your inbox

Join Medium for free to get updates from this writer.

Porque esses parâmetros podem ser utilizados para evitar-se de colocar a stacktrace dentro da exception. E calcular a stacktrace, que inclui, basicamente, todas as chamadas de métodos que estão envolvidas até um dado momento, é muito custoso para a JVM, porque ela precisa fazer um stop em determinada thread, coletar a stack inteira e inserir na exception.

E isso, quando se fala em uma aplicação de alta performance, que envolve muitas chamadas, muitas threads, acaba sendo muito custoso.

Referências:
FULL CYCLE 3.0. Projeto prático — Java ( Back-end ). 2023. Disponível em: https://plataforma.fullcycle.com.br. Acesso em: 28 jul. 2023.

--

--