AntonioGanci

Il blog di Antonio Ganci
posts - 201, comments - 420, trackbacks - 31

Assertive Programming - Come evitare l'impossibile, segue un piccolo quiz

Quante volte di fronte ad una segnalazione di un problema da parte di un utente abbiamo pensato o detto "Questo è impossibile...".

Trovo molto efficace il Tip 33 del libro The Pragmatic Programmer:

If It Can't Happen, Use Assertions to Ensure That it Won't

Il modo più semplice per seguire questo consiglio è quello di usare il metodo Assert del framework. Segue un semplice esempio:

public void WriteString(string s)
{
  Debug.Assert(s != null);
  // Segue il codice della funzione

}

Si deve fare attenzione che il codice della Assert non abbia side effects e, soprattutto, non inserire codice che deve essere eseguito per il corretto funzionamento del programma; perchè le Assert possono essere disabilitate quando si passa al codice in release.

Segue un piccolo quiz:
Quale di queste affermazioni impossibili può accadere?

  1. Un mese con meno di 28 giorni
  2. Directory.GetFiles("."); segnala un eccezione (cioè non è possibile accedere alla directory corrente)
  3. In c#: a = 2; b = 3; if (a + b != 5)  Console.WriteLine("Questo è impossibile");
  4. Un triangolo in cui la somma degli angoli interni è diversa da 180°
  5. Un minuto che non dura 60 secondi
  6. In c#: (a + 1) <= a

Le risposte al prossimo post.

Print | posted on mercoledì 9 agosto 2006 02:52 | Filed Under [ Tips ]

Feedback

Gravatar

# re: Assertive Programming - Come evitare l'impossibile, segue un piccolo quiz

Rispondo ad un paio...

1. Possibile in un calendario non Gregoriano (esempio qllo Giuliano)
6. Possibile se a = double.MaxValue o double.MinValue
10/08/2006 11:23 | M.rkino
Gravatar

# Le risposte del quiz

10/08/2006 22:49 | AntonioGanci
Comments have been closed on this topic.

Powered by:
Powered By Subtext Powered By ASP.NET