|
|
Publicēts 12.04.2015 22:22:03
|
|
|

C# valodas izņēmumu apstrādes līdzeklis palīdz rīkoties ar neparedzētām vai neparastām situācijām, kas rodas programmas darbības laikā. Izņēmumu apstrāde izmanto atslēgvārdus izmēģināt, noķert un visbeidzot, lai izmēģinātu noteiktas darbības, lai apstrādātu kļūmes, un, lai gan šīs operācijas var neizdoties, varat mēģināt to darīt, ja esat pārliecināts, ka tas ir jādara un pēc tam vēlaties iztīrīt resursus. Common Language Runtime (CLR), . NET Framework vai jebkura trešās puses bibliotēka vai lietojumprogrammas kods var radīt izņēmumus. Izņēmumi tiek izveidoti, izmantojot atslēgvārdu mest. Daudzos gadījumos izņēmumus var neizvirzīt ar metodi, ko izsauc tieši ar kodu, bet ar citu metodi, kas atrodas tālāk zvanu stekā. Šajā gadījumā CLR paplašina steku, lai redzētu, vai ir metode, kas satur nozvejas bloku šim konkrētajam izņēmuma tipam, un, ja tā atrod šādu metodi, tā izpilda pirmo šādu atrasto nozvejas bloku. Ja zvanu kaudzē nekur nav atrasts atbilstošs nozvejas bloks, process tiek pārtraukts un lietotājam tiek parādīts ziņojums. Šajā piemērā tiek izmantota metode, lai noteiktu, vai ir situācija, kad tā ir dalīta ar nulli; Ja ir, kļūda tiek noķerta. Ja nav izņēmumu apstrādes, šī programma tiks pārtraukta un radīs kļūdu "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ēt kodu
|
Iepriekšējo:C# nosaka, vai virkne satur rakstzīmiNākamo:Nosakiet, vai vietni veido Discuz foruma programma
|