Šis raksts ir mašīntulkošanas spoguļraksts, lūdzu, noklikšķiniet šeit, lai pārietu uz oriģinālo rakstu.

Skats: 21123|Atbildi: 0

[Avots] Izņēmumi un izņēmumu apstrāde (C# programmēšanas rokasgrāmata)

[Kopēt saiti]
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".
  1. class ExceptionTest
  2. {
  3.     static double SafeDivision(double x, double y)
  4.     {
  5.         if (y == 0)
  6.             throw new System.DivideByZeroException();
  7.         return x / y;
  8.     }
  9.     static void Main()
  10.     {
  11.         // Input for test purposes. Change the values to see
  12.         // exception handling behavior.
  13.         double a = 98, b = 0;
  14.         double result = 0;

  15.         try
  16.         {
  17.             result = SafeDivision(a, b);
  18.             Console.WriteLine("{0} divided by {1} = {2}", a, b, result);
  19.         }
  20.         catch (DivideByZeroException e)
  21.         {
  22.             Console.WriteLine("Attempted divide by zero.");
  23.         }
  24.     }
  25. }
Kopēt kodu






Iepriekšējo:C# nosaka, vai virkne satur rakstzīmi
Nākamo:Nosakiet, vai vietni veido Discuz foruma programma
Atruna:
Visa programmatūra, programmēšanas materiāli vai raksti, ko publicē Code Farmer Network, ir paredzēti tikai mācību un pētniecības mērķiem; Iepriekš minēto saturu nedrīkst izmantot komerciāliem vai nelikumīgiem mērķiem, pretējā gadījumā lietotājiem ir jāuzņemas visas sekas. Informācija šajā vietnē nāk no interneta, un autortiesību strīdiem nav nekāda sakara ar šo vietni. Iepriekš minētais saturs ir pilnībā jāizdzēš no datora 24 stundu laikā pēc lejupielādes. Ja jums patīk programma, lūdzu, atbalstiet oriģinālu programmatūru, iegādājieties reģistrāciju un iegūstiet labākus oriģinālus pakalpojumus. Ja ir kādi pārkāpumi, lūdzu, sazinieties ar mums pa e-pastu.

Mail To:help@itsvse.com