Pular para o conteúdo principal

avoid_catches_without_on_clauses

Saiba mais sobre a regra de lint avoid_catches_without_on_clauses.

Estável

Evite catch sem cláusulas on.

Detalhes

#

Do Effective Dart:

EVITE usar catch sem cláusulas on.

Usar cláusulas catch sem on torna seu código propenso a encontrar erros inesperados que não serão lançados e, por isso, podem passar despercebidos.

RUIM:

dart
try {
 somethingRisky()
} catch(e) {
  doSomething(e);
}

BOM:

dart
try {
 somethingRisky()
} on Exception catch(e) {
  doSomething(e);
}

Alguns casos excepcionais são permitidos:

  • Se o corpo do catch relançar a exceção.
  • Se a exceção capturada for "usada diretamente" em um argumento de Future.error, Completer.completeError, ou FlutterError.reportError, ou em qualquer função com tipo de retorno Never.
  • Se a exceção capturada for "usada diretamente" em uma nova expressão throw.

Nesses casos, "usada diretamente" significa que a exceção é referenciada dentro do código relevante (como dentro de um argumento). Se a variável de exceção for referenciada antes do código relevante, por exemplo para instanciar uma exceção encapsulada, a variável não é "usada diretamente".

Ativar

#

Para ativar a regra avoid_catches_without_on_clauses, adicione avoid_catches_without_on_clauses em linter > rules no seu arquivo analysis_options.yaml:

analysis_options.yaml
yaml
linter:
  rules:
    - avoid_catches_without_on_clauses

Se você usa a sintaxe de mapa YAML para configurar as regras de lint, adicione avoid_catches_without_on_clauses: true em linter > rules:

analysis_options.yaml
yaml
linter:
  rules:
    avoid_catches_without_on_clauses: true

Encontrou essa página sem tradução ou que precisa de correção? Abra uma issue e nos ajude a manter esse site em PT-BR para ajudar pessoas como você.