En Delphi, s'il y avait une exception lors de la construction d'un objet: toute mémoire allouée serait libérée et une exception serait levée. Par exemple, ce qui suit est garanti soit retourner un objet valide Camera
, ou lancer une exception:CLR: Si un constructeur échoue, va-t-il toujours lancer une exception?
Camera c = new Camera();
Vous jamais devait vérifier la variable résultante pour null:
Camera c = new Camera();
if (c == null)
throw new Exception("Error constructing Camera") //waste of time
Est-ce la même chose dans le CLR?
Y a-t-il d'autres constuites syntatiques dans lesquelles une valeur de retour est garantie, soit valide, soit une exception?
- Création de structures (par exemple Rectangle)?
- Obtenir un membre d'un recensement?
- le résultat de Object.ToString()?
- opérations mathématiques?
Dans le cas d'effectuer les mathématiques:
Int32 aspect = 1650.0/1080.0;
if (aspect == null)
throw new Exception("Division of two numbers returned null")