Skip to content

Commit 225c816

Browse files
committed
Add rule
1 parent 97940f9 commit 225c816

1 file changed

Lines changed: 26 additions & 0 deletions

File tree

.rules/generic_exception.md

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
Título:
2+
Nunca resgate Exception genérica; capture erros específicos
3+
4+
Conteúdo:
5+
Não use `rescue` sem classe (que captura StandardError implicitamente de forma
6+
ampla) nem `rescue Exception`. Capturar Exception engole sinais críticos como
7+
SignalException, Interrupt e NoMemoryError, quebrando Ctrl+C e mascarando bugs.
8+
Sempre resgate a classe de erro mais específica que você espera.
9+
10+
Sinalize `rescue Exception`, `rescue => e` genérico usado para engolir qualquer
11+
coisa, e blocos rescue que capturam tudo e não re-levantam nem logam.
12+
13+
Ruim:
14+
begin
15+
charge_card(order)
16+
rescue Exception => e
17+
nil
18+
end
19+
20+
Bom:
21+
begin
22+
charge_card(order)
23+
rescue Stripe::CardError => e
24+
Rails.logger.error("Card declined: #{e.message}")
25+
raise
26+
end

0 commit comments

Comments
 (0)