31 décembre 2007
Imprimer ce billet

Bêtisier 2007

L'époque s'y prête : pour finir l'année en beauté, et exploiter une formule qui fait les choux gras de TF1, voici une sélection de perles que nous avons rencontrées en 2007, sur des projets ou sur la toile. Nous vous invitons à poster en commentaire vos propres rencontres du troisième type... A vous de jouer !

Une gestion astucieuse des exceptions

J'aime beaucoup celle-là, presqu'une blague au second degré, et une source inépuisable de perplexité. J'ai laissé le commentaire, qui vaut lui-aussi le détour.

/**
 * lever une exception "sémantique", et en plus on la trace dans
 * {@link System#err}. Elle est pas belle, la vie ?
 */

private static RuntimeException throwRuntimeException(final RuntimeException e) {
    throw e;
}

Et le code client qui permet d'exploiter cette puissante API :

//...
throw throwRuntimeException(new NullPointerException("Parameter should not be null: " + paramName));
//...

L'essence du vide

Signalée par un collègue hollandais, le concept sous-jacent de cette classe a fait l'objet d'un passionnant débat sur notre tech-list.

/*
 * Empty
 *
 * $Revision: 1.1 $
 *
 * Copyright xxx */

public class Empty {

}

Avouons que nous avons rarement croisé une classe portant mieux son nom...

Certains d'entre nous ont suggéré de la rendre plus amusante encore en adoptant le design suivant (je considère quant à moi que ce refactoring nuit à la lisibilité initiale) :

public class Empty {
  public boolean isEmpty() {
    return false;
  }
}

voire de fournir un wrapper, au cas où :

public class EmptyWrapper {
   public EmptyWrapper(Empty empty) {
      // do nothing its empty anyway..
   }

   public void getEmpty() {
   }
}

No comment

Runtime.getRuntime().exec("d:/path/to/bin/sleep.exe " + nbSecond);

Out Of Order

La page d'erreur de l'année.

Une erreur est survenue...