Manejo de excepciones en Dart

Una excepción es un error que ocurre dentro del programa. Cuando ocurre una excepción dentro de un programa, el flujo normal del programa se interrumpe y termina de manera anormal, mostrando la pila de errores y excepciones como salida. Por lo tanto, se debe tener cuidado con una excepción para evitar que la aplicación finalice. 

Excepciones integradas en Dart: 
 

Built-in Exceptions in Dart: 

Cada excepción incorporada en Drat viene bajo una clase predefinida llamada Exception . Para evitar que el programa haga una excepción, utilizamos los bloques try/on/catch en Dart.

try { 
   // program that might throw an exception 
}  
on Exception1 { 
   // code for handling exception 1
}  
catch Exception2 { 
   // code for handling exception 2
}

Ejemplo 1: Usando un bloque de prueba en el dardo. 

Dart

void main() {
  String geek = "GeeksForGeeks";
  try{
    var geek2 = geek ~/ 0;
    print(geek2);
  }
  on FormatException{
    print("Error!! \nCan't act as input is not an integer.");
  }
}

 

Producción:  

Error!! 
Can't act as input is not an integer.

Ejemplo 2: Usar un bloque de intento y captura en el dardo. 

Dart

void main() {
  String geek = "GeeksForGeeks";
  try{
    var geek2 = geek ~/ 0;
    print(geek2);
  }
  catch(e){
    print(e);
  }
}

 

Producción:  

Class 'String' has no instance method '~/'.

NoSuchMethodError: method not found: '~/'
Receiver: "GeeksForGeeks"
Arguments: [0]

Bloque final:  el bloque final en dart se usa para incluir un código específico que debe ejecutarse independientemente del error en el código. Aunque es opcional incluir el bloque finalmente, si lo incluye, debería ser después de que terminen los bloques try y catch.

finally {
   ...
}

Ejemplo: 
 

Dart

void main() {
  int geek = 10;
  try{
    var geek2 = geek ~/ 0;
    print(geek2);
  }
  catch(e){
    print(e);
  }
  finally {
    print("Code is at end, Geek");
  }
}

 

Producción:  

Unsupported operation: Result of truncating division is Infinity: 10 ~/ 0
Code is at end, Geek

A diferencia de otros lenguajes, en Dart to one se puede crear una excepción personalizada. Para ello, hacemos uso de throw new palabra clave en el dardo. 

Ejemplo: Creación de excepciones personalizadas en el dart. 

Dart

// extending Class Age
// with Exception class
class Age implements Exception {
  String error() => 'Geek, your age is less than 18 :(';
}
  
void main() {
  int geek_age1 = 20;
  int geek_age2 = 10;
    
  try{
    // Checking Age and
    // calling if the
    // exception occur
    check(geek_age1);
    check(geek_age2);
  }
  catch(e){
    // Printing error
    print(e.error());
  }
}
  
// Checking Age
void check(int age){
  if(age < 18){
    throw new Age();
  }
  else
  {
    print("You are eligible to visit GeeksForGeeks :)");
  }
}

 

Producción: 

You are eligible to visit GeeksForGeeks :)
Geek, your age is less than 18 :(

Publicación traducida automáticamente

Artículo escrito por aditya_taparia y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *