« Programmation C sharp/Les exceptions » : différence entre les versions
Contenu supprimé Contenu ajouté
ortho |
<source> + précision |
||
Ligne 1 :
<noinclude>{{Programmation_C_sharp}}{{NavTitre|book={{BASEPAGENAME}}|prev=Classe abstraite|next=Structures et énumérations}}</noinclude>
Une exception est créée et lancée quand une erreur survient.
== Attraper une exception ==
Ligne 29 :
Exemple :
<source lang="csharp">
try
{
Console.Write("Entrez un nombre : ");
int n = int.Parse( Console.ReadLine() );
Console.WriteLine(" 100/nombre = "+( 100/nombre ));
}
catch ( DivideByZeroException dbzex )
{
Console.Error.WriteLine(" Division par zéro");
}
catch ( Exception ex )
{
Console.Error.WriteLine(
" Une autre exception a eu lieu : "+ex.Message);
}
finally
{
Console.WriteLine(" Quel que soit le résultat, ceci est affiché");
}
</source>
Un bloc <tt>finally</tt> est utile pour libérer des ressources à la fin d'un traitement, qu'une erreur ait eu lieu ou non.
Exemple :
<source lang="csharp">
Bitmap bm;
try
{
bm=new Bitmap(100,100);
...
}
finally
{
bm.Dispose(); // libérer les ressources
}
</source>
Cependant, les classes implémentant l'[[Programmation C sharp/Interfaces|interface]] <tt>IDisposable</tt> ont une méthode <tt>Dispose()</tt>, et peuvent être utilisées avec le mot clé <tt>using</tt> :
<source lang="csharp">
using( Bitmap bm = new Bitmap(100,100) ) // <- objet IDisposable
{
...
} // <- méthode Dispose() appelée automatiquement
</source>
== Lancer une exception ==
Ligne 83 ⟶ 89 :
Exemple :
<source lang="csharp">
try
{
Console.Write("Entrez un nombre : ");
int n = int.Parse( Console.ReadLine() );
Console.WriteLine(" 100/nombre = "+( 100/nombre ));
}
catch ( DivideByZeroException dbzex )
{
Console.Error.WriteLine(" Division par zéro");
throw; // relance la même exception
}
</source>
== Créer une classe d'exception ==
Ligne 101 ⟶ 109 :
Exemple :
<source lang="csharp">
public class ErreurDeScriptException : Exception
{
// Attributs
private int ligne,colonne; </source>
Ensuite, cette classe peut être utilisée comme n'importe quelle autre classe d'exception :
<source lang="csharp">
if ( arg==null )
throw new ErreurDeScriptException(
"Un argument est nécessaire", fichier_script, 10 , 5);
</source>
[[Catégorie:Programmation C sharp (livre)]]
|