Chez oim, forum libre

Débattre => Informatique, programmation, geek attitude... => Discussion démarrée par: Songbird le lundi 11 juillet 2016, 16:00

Titre: Source - Assertion personnalisée
Posté par: Songbird le lundi 11 juillet 2016, 16:00
Voici une macro Dart pour personnaliser les assertions écrites et qui seront présentes sans le checked mode, ce qui demandera donc un effort en moins durant la transpilation ou le lancement de la DVM.

Voici le code source avec un test écrit dans la méthode principale:
Code
void main()
{
  assert_macro(1 == 2, "Une erreur est survenue.", 1);
}

void assert_macro(final bool condition, [final String error_message, final int error_code=1])
{
  try
  {
      if(condition == null || error_message == null || error_code == null)
      {
        throw new Exception("condition=${condition}\nerror_message=${error_message}\nerror_code=${error_code}");
      }
    
      if(error_message.isEmpty)
      {
          throw new Exception("error_message(='${error_message}') is empty.");
      }
    
      if(condition == false)
      {
        if(error_code == 0)
        {
          throw new Exception("error code should be greater than 0");
        }
        throw new Exception("${error_message}\nreturn code: $error_code");
      }
  }catch(e, s)
  {
    print(s);
  }
}

Si vous ne spécifiez pas de code d'erreur à renvoyer, la valeur 1 sera la valeur par défaut.