Course Hive
Search

Welcome

Sign in or create your account

Continue with Google
or
037 - Tratamento de Excessões - Exception no Dart - Curso de FLUTTER e DART
Play lesson

Curso de FLUTTER e DART - 037 - Tratamento de Excessões - Exception no Dart - Curso de FLUTTER e DART

5.0 (1)
8 learners

What you'll learn

This course includes

  • 35.5 hours of video
  • Certificate of completion
  • Access on mobile and TV

Summary

Keywords

Full Transcript

Playlist: Curso Grátis de FLUTTER e DART Completo https://www.youtube.com/playlist?list=PL5EmR7zuTn_aX0pG4oWTyKKQT25Hkq2XG Curso de DART Exceções Seu código de dardo pode jogar e pegar exceções. Exceções são erros indicando que algo inesperado aconteceu. Se a exceção não for detectada, o isolado que gerou a exceção será suspenso e, normalmente, o isolado e seu programa serão encerrados. Em contraste com o Java, todas as exceções do Dart são exceções não verificadas. Os métodos não declaram quais exceções eles podem lançar, e você não é obrigado a detectar exceções. O Dart fornece tipos de exceção e erro, bem como vários subtipos predefinidos. Você pode, claro, definir suas próprias exceções. Entretanto, os programas Dart podem lançar qualquer objeto não nulo - não apenas objetos Exception and Error - como exceção. Lançar Veja um exemplo de lançamento ou de uma exceção: throw FormatException ('Esperado pelo menos 1 seção'); Você também pode jogar objetos arbitrários: jogue 'Fora dos lhamas!'; Nota: O código de qualidade de produção geralmente gera tipos que implementam Erro ou Exceção. Como lançar uma exceção é uma expressão, você pode lançar exceções em instruções IGUAL MAIOR, bem como em qualquer outro lugar que permita expressões: void distanceTo (ponto outro) IGUAL MAIOR throw UnimplementedError (); Pegar Capturar ou capturar uma exceção impede que a exceção se propague (a menos que você retome a exceção). Capturar uma exceção lhe dá a chance de lidar com isso: experimentar {   breedMoreLlamas (); } em OutOfLlamasException {   buyMoreLlamas (); } Para lidar com código que pode lançar mais de um tipo de exceção, você pode especificar várias cláusulas catch. A primeira cláusula catch que corresponde ao tipo do objeto lançado manipula a exceção. Se a cláusula catch não especificar um tipo, essa cláusula poderá manipular qualquer tipo de objeto lançado: experimentar {   breedMoreLlamas (); } em OutOfLlamasException {   // Uma exceção específica   buyMoreLlamas (); } na captura de exceção (e) {   // Qualquer outra coisa que seja uma exceção   print ('Exceção desconhecida: $ e'); } pegar (e) {   // Nenhum tipo especificado, lida com todos   print ('Algo realmente desconhecido: $ e'); } Como mostra o código anterior, você pode usar ou capturar ou ambos. Use quando precisar especificar o tipo de exceção. Use catch quando seu manipulador de exceções precisar do objeto de exceção. Você pode especificar um ou dois parâmetros para catch (). A primeira é a exceção que foi lançada e a segunda é o rastreamento de pilha (um objeto StackTrace). experimentar {   // ··· } na captura de exceção (e) {   print ('Detalhes da exceção: \ n $ e'); } pegar (e, s) {   print ('Detalhes da exceção: \ n $ e');   print ('Rastreio de pilha: \ n $ s'); } Para manipular parcialmente uma exceção, enquanto permite que ela se propague, use a palavra-chave rethrow. void misbehave () {   experimentar {     foo dinâmico = true;     print (foo ++); // Erro de tempo de execução   } pegar (e) {     print ('misbehave () parcialmente manipulado $ {e.runtimeType}.');     relançar; // Permitir que chamadores vejam a exceção.   } } void main () {   experimentar {     portar-se mal ();   } pegar (e) {     print ('main () terminou de lidar com $ {e.runtimeType}.');   } } Finalmente Para garantir que algum código seja executado ou não, uma exceção é lançada, use uma cláusula finally. Se nenhuma cláusula catch corresponder à exceção, a exceção será propagada após a execução da cláusula finally: experimentar {   breedMoreLlamas (); } finalmente {   // Sempre limpe, mesmo que uma exceção seja lançada.   cleanLlamaStalls (); } A cláusula finally é executada após qualquer cláusula catch correspondente: experimentar {   breedMoreLlamas (); } pegar (e) {   print ('Erro: $ e'); // Lidar com a exceção primeiro. } finalmente {   cleanLlamaStalls (); // Então limpe. }

Course Hive

Continue this lesson in the app

Install CourseHive on Android or iOS to keep learning while you move.

Related Courses

FAQs

Course Hive
Download CourseHive
Keep learning anywhere