|
|
Zveřejněno 12.04.2015 22:22:03
|
|
|

Funkce zpracování výjimek v jazyce C# vám pomáhá zvládat jakékoli neočekávané nebo neobvyklé situace, které nastanou během běhu vašeho programu. Zpracování výjimek využívá klíčová slova try, catch a nakonec k vyzkoušení určitých operací k řešení selhání, a i když tyto operace mohou selhat, můžete to zkusit, pokud jste si jistí, že to potřebujete a chcete po tom vyčistit zdroje. Common Language Runtime (CLR), . NET Framework nebo jakákoli knihovna či aplikační kód třetích stran může generovat výjimky. Výjimky se vytvářejí pomocí klíčového slova hod. V mnoha případech nemusí být výjimky vyvolány metodou přímo volanou kódem, ale jinou metodou níže v zásobníku volání. V tomto případě CLR rozšíří zásobník, aby zjistil, zda existuje metoda, která obsahuje blok zachycení pro daný typ výjimky, a pokud takovou metodu najde, vykoná první nalezený blok zachycení. Pokud se v zásobníku volání nenajde žádný vhodný blok zachycení, proces je ukončen a uživateli je zobrazena zpráva. V tomto příkladu se používá metoda k detekci, zda je v situaci děleno nulou; Pokud ano, chyba je odhalena. Pokud není řešeno žádné výjimky, tento program ukončí a vygeneruje chybu "DivideByZeroException Not Handled".- class ExceptionTest
- {
- static double SafeDivision(double x, double y)
- {
- if (y == 0)
- throw new System.DivideByZeroException();
- return x / y;
- }
- static void Main()
- {
- // Input for test purposes. Change the values to see
- // exception handling behavior.
- double a = 98, b = 0;
- double result = 0;
- try
- {
- result = SafeDivision(a, b);
- Console.WriteLine("{0} divided by {1} = {2}", a, b, result);
- }
- catch (DivideByZeroException e)
- {
- Console.WriteLine("Attempted divide by zero.");
- }
- }
- }
Kopírovat kód
|
Předchozí:C# určuje, zda řetězec obsahuje znakDalší:Zjistěte, zda je webová stránka vytvořena programem fóra Discuz
|