RiapaMeTpbi anrmeTa
Download 399.85 Kb.
|
Java (Laboratoriya)
public static void main(String[] args) { sinash {
int a = (int )(Math.random() * 2); System.out.println("a = " + a); int c[] = {1/a }; c[a] = 555; } catch (ArithmeticException e) { System.out.println (" bo'linish 0 " + e); } catch (ArrayIndexOutOfBoundsException e) { System.out.print(" oshib ketdi chegaralar massiv : "+ e); } System.out.println(" keyin try-catch bloki") ; } } a=0 ishga tushirilganda "0 ga bo'linish " istisnosi paydo bo'ladi . Aks holda ( a=1 boʻlganda) massivning ikkinchi elementiga faqat bitta elementni oʻz ichiga olgan [] bilan qiymat belgilashga urinayotganda “massiv chegarasi oshib ketdi” istisnosi tashlanadi. Istisno pastki sinflari o'zlarining har qanday superklasslaridan oldin kelishi kerak yoki superklass bu istisnolarni ushlaydi. Masalan: ushlash ( istisno e ){}/* supersinf Istisno uning barcha quyi sinflaridagi obyektlarni ushlaydi */ catch ( ArithmeticException e ) {}/* chaqirib bo‘lmaydi, shuning uchun kompilyatsiya xatosi yuzaga keladi */ bayonotlarni sinab ko'ring bir-biringizga sarmoya kiritishingiz mumkin. Agar try bayonoti past darajadagi istisnoga mos keladigan ushlash bo'limi yo'q , qidiruv bir pog'ona yuqoriga ko'tariladi va ushlash bo'limlari tekshiriladi tashqi try bayonoti . /* № 9.2 misol : ichki o'rnatilgan try-catch bloklari : MultiTryCatch.java */ class MultiTryCatch { public static void main(String[] args) { urinib ko'ring { // tashqi blok int a = (int) (Math.random() * 2) - 1; System.out.println("a = " + a); harakat qilib ko'ring { // ichki blok int b = 1/a; StringBuffer sb = yangi StringBuffer(a); } catch (NegativeArraySizeException e) { System.out.println( " yaroqsiz hajmi bufer : "+ e);} } catch (ArithmeticException e) { System.out.println(" bo'linish 0 " + e); } } Download 399.85 Kb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling