Sobes.tech
Middle

Wat is het type Never in de Dart-taal?

sobes.tech AI

Antwoord van AI

Het type Never is een indicator dat een uitdrukking nooit succesvol zal eindigen. Het wordt gebruikt voor functies en methoden die of een uitzondering werpen of in een oneindige lus blijven.

Voorbeelden van gebruik:

  • Functie die een uitzondering werpt:

    Never _throwError(String message) {
      // Werpt een uitzondering, de functie geeft nooit een waarde terug
      throw StateError(message);
    }
    
  • Functie met een oneindige lus:

    Never _infiniteLoop() {
      // Gaat in een oneindige lus, de functie eindigt nooit
      while (true) {
        // Doe iets
      }
    }
    

Het belangrijkste voordeel van Never is dat het de compiler helpt te begrijpen dat de code na het aanroepen van zo'n functie of methode niet bereikbaar is, wat statische analyse mogelijk maakt om potentiële fouten te detecteren, zoals onbereikbare code en onjuiste foutafhandeling.

In tegenstelling tot void, dat aangeeft dat een functie geen waarde retourneert (maar succesvol eindigt), betekent Never dat de functie nooit in principe zal eindigen.

// Functie die void retourneert (eindigt succesvol, maar zonder waarde)
void doSomething() {
  print('Iets doen');
}

// Functie die Never retourneert (nooit succesvol eindigt)
Never crashAndBurn() {
  throw 'Oh nee!';
}

Het type Never is een ondertype (bottom type), dat wil zeggen dat het een subtype is van elk ander type. Dit maakt het mogelijk om een functie die Never retourneert te gebruiken op plaatsen waar elk ander type wordt verwacht.