Perché avere NotImplementedException è una buona cosa? [duplicare]

0

C # ha creato una funzione linguistica di NotImplementedException . Viene aggiunto a un sacco di codice generato automaticamente, come gli stub del gestore di eventi:

// Auto-generated
private void TextBox_MouseDown(object sender, MouseEventArgs e)
{
    throw new NotImplementedException();
}

Cosa rende questa eccezione

  • utile?
  • una buona funzionalità linguistica?

Mi sembra che l'unica persona che dovrebbe mai vedere che l'eccezione generata sia lo sviluppatore di un software, ma questo è il problema e i sistemi di tracciamento TODO sono utili.

    
posta ArtOfCode 29.06.2016 - 00:18
fonte

2 risposte

13

Permette al codice di compilare per il tuo metodo stub (indipendentemente dal tipo di ritorno del metodo), mentre tu vai in giro per implementare.

Ti ricorda anche di inserire l'implementazione, perché la prima volta che proverai a MouseDown su quella casella di testo verrà lanciata. Un'eccezione generata che dice "Questo metodo non è implementato" è molto meglio che fare clic su una casella di testo e chiedersi perché non accada nulla.

    
risposta data 29.06.2016 - 00:25
fonte
5

C'è un caso aggiuntivo che non è stato menzionato nelle risposte precedenti: mock per i test unitari.

Un mock può aver bisogno di implementare solo una piccola parte di un'interfaccia, ma per compilare, dovrebbe dichiararli tutti. L'eccezione non implementata rende quindi molto netta la differenza tra i metodi effettivamente richiesti dal test, ma non restituisce nulla o un valore fittizio e metodi che non sono necessari durante il test.

    
risposta data 29.06.2016 - 01:03
fonte

Leggi altre domande sui tag