ကွန်ပျူတာများပရိုဂရမ်းမင်း

ဂျာဗား: ခြွင်းချက်နဲ့သူတို့ရဲ့ကိုင်တွယ်

မဆို program ကို source code ကို debugged သာလျှင် stably လည်ပတ်မည်,, မမြင်နိုင်တဲ့အခြေအနေများဖြစ်ပေါ်စေနိုင်သည်ကိုအဘယ်သူမျှမအခြေအနေများရှိနေပါသည်။ ဖြစ်နိုင်သမျှမအောင်မြင်မှုများဖမ်း၏လုပ်ငန်းစဉ် programming ကိုစင်ပေါ်မှာထွက်ယူသွားတတ်၏။ ဒီလိုလုပ်ဖို့, ထိုဆော့ဖ်ဝဲရေးသားသူအကောင့်ထဲသို့အပေါငျးတို့သလိမ့်မည်ဟုမျှော်လင့်ရလဒ်များကြာနှင့်သူကအစီအစဉ်၏စစ်ဆင်ရေးနှင့်အတူဝင်ရောက်စွက်ဖက်ခြင်းသို့မဟုတ်ယင်း၏ပြိုကျဖို့ဦးဆောင်လမ်းပြလို့မရဘူးဒါကြောင့်အမှား၏အကျိုးသက်ရောက်မှုကန့်သတ်ရန်ရန်ကြိုးစားသည်။

သငျသညျခြွင်းချက်ကိုင်တွယ်လိုအပ်ပါလိမ့်မယ်တဲ့အခါမှာ

ဂျာဗား၌တစ်ဦးခြွင်းချက်မမှန်ကန်ကြောင်းအသုံးပြုသူ input ကိုတစ်ဦးအရင်းအမြစ်သို့မဟုတ်ရုတ်တရက်ကွန်ယက်ကိုချိတ်ဆက်မှုဖြုတ်အစီအစဉ်အတွက်မလိုအပ်ကြောင့်ဖြစ်ရတဲ့နိုင်ပါသည်။ လျှောက်လွှာ developer အသုံးပြုနေသူများကဖန်တီးအဆင်ပြေအသုံးပြုမှုများအတွက်, သငျသညျအရေးပေါ်အခြေအနေများ၏ဖြစ်ပျက်မှုကိုထိန်းချုပ်ရပါမည်။ စားသုံးသူတစ်ဦးလျှောက်လွှာဆေးလိပ်ဖြတ်ဖို့စောင့်ဆိုင်းရန်ရှိသည်မဖြစ်သင့်အနေနဲ့ unhandled ခြွင်းချက်၏ရလဒ်အဖြစ် data တွေကိုဆုံးရှုံးဖို့, ဒါမှမဟုတ်တစ်ဦးမက်ဆေ့ခ်ျကိုပဲစိတျအပိုငျးတစ်ခုခုမှားသွားကြောင်းဖော်ပြထားသည်ပုံပေါ်ပါတယ်။

ဂျာဗားခြွင်းချက်ကိုင်တွယ်

အဘယ်အရာကိုထည့်သွင်းစဉ်းစားသလော အဆိုပါဂျာဗားဘာသာစကား၎င်း၏ကိုယ်ပိုင် built-in ခြွင်းချက်ကိုင်တွယ်လုပ်ဆောင်နိုင်စွမ်းရှိပါတယ်။ ဟုတ်ပါတယ်, အမှား၏ကြီးမားသောရာခိုင်နှုန်းအခြားစုစည်းဇာတ်စင်ဖမ်းမိသည်စနစ်အလိုအလြောကျကမရှိတော့ဖြစ်နိုင်ကိုအသုံးပြုဖို့အကြောင်းကြားပါလိမ့်မယ်။ သို့သော် runtime မှာဖြစ်ပေါ်ကြောင်းခြွင်းချက်ဒီလိုမျိုးလည်းမရှိ။ အဆိုပါဆော့ဖ်ဝဲရေးသူကမျှော်လင့်ဖို့နဲ့ကမှားယွင်းမှုတစ်ခုဖြစ်ပေါ်စေနှင့်အခြားဌာနခွဲထိန်းချုပ်မှုကျော်အထူးလမ်းနှင့်လက်၌ကိုင်တွယ်မဒါ code ကိုဒီဇိုင်းနိုင်ဖြစ်သင့်သည်။

ဂျာဗား၌, ဒီခြွင်းချက်တခုကိုဖမ်းရန် compiler အားဖြင့်ချမှတ်ထားတာဖြစ်ပါတယ်, ဒါကြောင့်ပုံမှန်ပြဿနာများလူသိများပြီးစံလေ့ကျင့်ခန်းပုံစံများရှိနေကြသည်။

ပုံမှန်ချန်လှပ်

ဒီဌာနခွဲ - ခြွင်းချက်တခုကိုသင်ရနိုင်သည့်အတွက်အရိုးရှင်းဆုံးဥပမာ။ ယင်း၏ရိုးရှင်းနေသော်လည်းအသုံးအနှုန်းများအတွက်တစ်ဦး Divide အဖြစ်, အမှားများဖြစ်ပေါ်လာစေမည်ဖြစ်သောသုညဖြစ်နိုင်သည်။ ဖြစ်နိုင်လျှင်ကောင်းပြီ, အတိတ်၏ပေါ်ပေါက်ရေးကြိုတင်ခန့်မှန်းခြင်းနှင့်ကာကွယ်တားဆီးဖို့။ ဒါပေမဲ့ဒီ option ကိုအမြဲမရရှိနိုင်, ဒါကြောင့်ခြွင်းချက်ဖမ်း "သုညခြင်းဖြင့်သွေးခွဲ" ၏ဖြစ်ရပ်တွင်တိုက်ရိုက်စည်းရုံးရပါမည်။

အပြောင်းအလဲနဲ့အမှားကြားဖြတ်ရန်ဂျာဗားယန္တရားကဒီတူ:

  • အမှိုက်ပုံခြွင်းချက်အရာဝတ္ထု created အဖြစ်ကိုအခြားလျက်ရှိ၏
  • ထို program ၏သဘာဝသင်တန်းပြတ်တောက်လျက်ရှိ၏
  • ဖယ်ယန္တရား code ကိုဆက်လက်အနေနဲ့အခြားရွေးချယ်စရာလမ်းကိုရှာဖွေဖို့ကြိုးစားနေလျက်ရှိ၏
  • လုံခြုံ Processor ကိုအတွက်အစီအစဉ်၏ကွပ်မျက်, အလုပ်သို့မဟုတ်ပွနျလညျထူထောငျကိုရှာပါ, ဒါမှမဟုတ်အထူးလမ်းအတွက်ခြွင်းချက်များသဘောပေါက်ပေါ်ပေါက်လိမ့်မယ်။

မှားယွင်းမှုတစ်ခုအတွက်အရိုးရှင်းဆုံးဥပမာကိုဤကဲ့သို့သောကြည့်ရှုစေခြင်းငှါ,:

(က == တရားမဝင်သော) လျှင်

အသစ်က NullPointerException ပစ် ();

ဤတွင်အဆိုပါ variable ကိုတစ်ဦးစတင်ခြင်း, ဆိုလိုသည်မှာမှာ check လုပ်ထားသည် တရားမဝင်သောအရာဝတ္ထုဖို့ရည်ညွှန်းခြင်းရှိမရှိမဟုတ်ပါဘူး။ ဒီအခြေအနေကိုပျေါထှနျးနှင့်အထူးကိုင်တွယ်လိုအပ်ပြီဆိုရင်, တစ်ခုချွင်းချက်) (ကပစ်အသစ်က NullPointerException ခြင်းဖြင့်ပစ်ချသည်။

သော့ချက်စာလုံးများအကြောင်းကိုအနည်းငယ်အသေးစိတ်အချက်အလက်များကို

ခြွင်းချက်နှင့်ဆက်ဆံရာတွင်သည့်အခါမကြာခဏအထူးသဖြင့်အရေးယူမှုအားရည်ညွှန်းဖို့ keyword ကိုဂျာဗားသုံးစွဲဖို့လိုအပ်ပေသည်။ သူတို့ရဲ့ငါးပရိုဂရမ်းမင်း၏ဤဘာသာစကားကို:

  • ကြိုးစားပါ။ ဤသည်သော့ချက်စာလုံးဖြစ်ပါတယ် ပြီးသားတွေ့ဆုံခဲ့ပြီး, ထိုသို့ခြွင်းချက်တခုကိုပစ်နိုင်မကုဒ်တဲ့အပိုင်းသို့အကူးအပြောင်းကိုဆိုလိုသည်။ block ကန့်သတ်ဆီကိုဦးတည် {} ။
  • ဖမ်း။ ဒါဟာတပ်မက်လိုချင်သောအခြွင်းချက်အမျိုးအစားကိုကြားဖြတ်နားထောင်နှင့်သင့်လျော်စွာကိုင်တွယ်။
  • နောက်ဆုံးအနေနဲ့။ ဤသည် keyword ကိုအဘယ်သူမျှမခြွင်းချက်ဖမ်းမိသည်မဟုတ်ရင်တောင် optional ကိုတစ်ခုဖြစ်ပြီးဘာပဲဖြစ်ဖြစ်လိုအပ်သောကုဒ်တစ်ခုအခြို့သောအပိုင်းအစ, ဖျော်ဖြေဖို့အသုံးပြုသည်။ ပါပိတ်ပင်တားဆီးမှုပြီးနောက်တိုက်ရိုက် Added ။
  • ပစ် - သင်ဘယ်နေရာကနေမဆို Java ကိုခြွင်းချက်ဖန်တီးပေးနိုင်ပါတယ်။
  • ပစ် - နည်းလမ်းလက်မှတ်ထဲမှာထည့်ထားသော keyword ကို။ ဒါဟာအောက်ပါကုဒ်ဒီ type ဂျာဗားတစ်ခုချွင်းချက်ပစ်နိုင်သည်ကိုဆိုလိုသည်။ ဤသည်အမှတ်အသားစိတ်တွင်ဘွားမြင်ခံရဖို့လိုအပျကွောငျး developer များရန်အချက်ပြအဖြစ်တာဝန်ထမ်းဆောင် - သူ့ကိုမျှော်လင့်ထားသည့်အတိုင်းနည်းလမ်းအလုပ်လုပ်လို့မရပါဘူး။

တစ်ဦးပါနှင့်အတူ Catching

ဂျာဗားခြွင်းချက်မှလွှတ်ပေးရန်, သဘာဝကြောင့်အထူးလမ်းအတွက်ကိုင်တွယ်လိမ့်မည်ဟုယူဆ။ code ကိုအပိုင်းတစ်ဘလောက်ထဲမှာပယ်ခိုင်ခံ့သောလျှင်, ထိုသို့ပြုမှအများဆုံးအဆင်ပြေနည်းလမ်းဖြစ်သည်။ ဘယ်တစ်ခုချွင်းချက်င်နိုင်ပါသည်။ သင်သည်ဤ code ကို run သောအခါ, virtual machine တစ်ခုမမျှော်လင့်ဘဲအခွအေနေရှာတွေ့သည့်အပြောင်းအလဲနဲ့အတူဘူတာရုံမှအရေးပါသောပိတ်ပင်တားဆီးမှုများနှင့်လွှဲပြောင်းထိန်းချုပ်မှုရှိကွောငျးကိုနားလည်ပါလိမ့်မယ်။

အဆိုပါဂျာဗားကုဒ်တစ်ခုချွင်းချက်ဖြစ်ရသောအတွင်းအထူးပိတ်ပင်တားဆီးမှုပါ, ပတ်ရစ်လျက်ရှိသည်။ ထို့ကြောင့်သူကနေရာတစ်ခုတည်းမဟုတ်ဘဲ raspolzayas ကုဒ်ထဲမှာဖမ်းမိမည်အများအပြားမမြင်နိုင်တဲ့အခြေအနေများတင်လိုက်တယ်။

အောက်မှာဖေါ်ပြတဲ့အတိုင်းအပြောင်းအလဲနဲ့ယူနစ်မှအများဆုံးပုံမှန်ကုဒ်ဖြစ်ပါသည်:

{ကြိုးစားကြ

// ဒီနေရာမှာတစ်ခုခြွင်းချက် generate စေခြင်းငှါအချို့ code များဖြစ်ပါတယ်

} Catch (Tip_isklyucheniya_1 identifikator_1) {

// ဒီနေရာမှာချွင်းချက်ကိုင်တွယ်ယင်း၏အမျိုးအစားနှင့်အခြေအနေများအရသိရသည်ရှိ၏

} Catch (Tip_isklyucheniya_2 identifikator_2) {

// ဒီနေရာမှာချွင်းချက်ကိုင်တွယ်ယင်း၏အမျိုးအစားနှင့်အခြေအနေများအရသိရသည်ရှိ၏

}

keyword ဖမ်းကြောင်းကုဒ်သတင်းပေးပို့ထားပါတယ်နှင့်အောက်တွင်ဖော်ပြထားသကဲ့သို့ကုသခံရဖို့တစ်ခုချွင်းချက်အဘို့ကစကင်ဖတ်စစ်ဆေးသောကြောင့်၎င်း၏ပုံစံနှင့်အတူလိုက်နာကြောင်းဖြစ်သည်။ အဆိုပါအမှတ်အသားအငြင်းပွားမှုများအဖြစ်ကုဒ်ပိတ်ပင်တားဆီးမှု processing အတွက်အသုံးပြုနိုင်ပါတယ်။

နောက်ဆုံး

ဒါကြောင့်ယခင်အခန်းကနေရှင်းရှင်းလင်းလင်းဖြစ်လာသည်နှင့်အမျှ, ဖမ်းလုပ်ကွက်ခြွင်းချက်ဖမ်းသူတို့ကို process ။ သို့သော်အလွန်မကြာခဏအခွအေနမသက်ဆိုင်သူတို့အမှားတွေကိုဖမ်းမိခဲ့သည်ရှိမရှိ၏, ဘယ်မှာတချို့ code တွေကို run သင့်ပါတယ်ပေါ်ပေါက်။ ဒီနောက်ဆုံးတော့ keyword ကိုလည်းမရှိ။ ဒါဟာဖိုင်တွေသို့မဟုတ်ကွန်ရက်ဆက်သွယ်မှုပိတ်, အမျိုးမျိုးသောကောင်တာများ၏တန်ဖိုးများကိုတိုးမြှင့်ဖို့အသုံးပြုသည်။

ဤသည်ကြံစည်မှုခြွင်းချက်ဖမ်းနည်းလမ်းများတီထွင်အများအပြားဖမ်းလုပ်ကွက်တွေ့ရမယ်။ ဥပမာ, ပါတွင်ပါရှိသော code ကိုထိုကဲ့သို့သောအေးအဖြစ်မျှော်လင့်မထားတဲ့အခွအေနေထုတ်ပေးပါတယ်။ ထို့နောက် console ကိုထိုအ«တစ်ခုခု? အကြောင်းကိုအားပေးစရာထိုသို့»«! အအေးဖမ်းမိ»ပြသစကားရပ်ဖြစ်လိမ့်မည်။ ဆိုလိုသည်မှာယင်းနောက်ဆုံးတော့လုပ်ကွက်ကိုမဆိုအမှု၌ကွပ်မျက်ခံရသည်။

တကယ်တော့, နောက်ဆုံးမှာရှိ TRIGGER ရှောင်ရှားရန်တစ်လမ်း။ ဒါဟာ virtual machine ၏ပြီးစီးနှင့်အတူချိတ်ဆက်နေသည်။ ဒါကြောင့်အင်တာနက်ကိုဖွင့်လှစ်နေရာများပေါ်တွင်ဖြစ်နိုင်ပါကအကောင်အထည်ဖော်ရန်ဖို့ဘယ်လိုရှာပါ။

keyword ကိုပစ်

ပစ်ထားတဲ့ခြွင်းချက်ကိုထုတ်ပေးပါတယ်။ အောက်မှာဖေါ်ပြတဲ့အတိုင်းယင်း၏ syntax ဖြစ်ပါသည်:

အသစ်က NewException ပစ် ();

အမျိုးအစား NewException () မှအသစ်တခုခြွင်းချက်ရှိပါတယ်နေသူများကဖန်တီး။ အမျိုးအစားကိုအသုံးပြုနိုင်ပါတယ်အဖြစ်ပြီးသားစံဂျာဗားစာကြည့်တိုက်အတန်းထဲတွင်ထည့်သွင်းခြင်းနှင့်ယခင်က၎င်း၏ကိုယ်ပိုင်ထုတ်လုပ်မှု၏ developer ကသတ်မှတ်ထားသည်။

ဒါကဒီဇိုင်းခေါ်ဆိုမှုထို့နောက်သူကကြားဖြတ်နိုင်တော့မည်နိုင်ရန်အတွက်, အစမ်းလုပ်ကွက်အတွင်းဖြစ်ပေါ်သင့်သောမည်သည့်နည်းလမ်းကို၏ဖော်ပြချက်၏အစိတ်အပိုင်းတစ်ခုဖြစ်ပါတယ်။

keyword ပစ်

အဘယ်အရာကိုနည်းလမ်းတခုခြွင်းချက်ပစ်, ဒါပေမယ့်စနစ်တကျကိုင်တွယ်နိုင်မဟုတျပါနိုင်ပါတယ်တဲ့အခြေအနေကိုဖွံ့ဖြိုးတိုးတက်မှုလုပ်ငန်းစဉ်များတွင်ပါ။ ဒီအဆုံးရန်, method ကိုလက်မှတ်အတွက်စကားလုံးပစ်နှင့်ဖြစ်နိုင်သမျှခြွင်းချက်အမျိုးအစားကိုသတ်မှတ်ပါတယ်။

ဤသည်တံဆိပ်နည်းလမ်းဟာသူတို့ရဲ့တူညီတဲ့ခြွင်းချက်ကိုင်တွယ်ရန်မတတ်နိုင်ကြောင်း client ကို developer များအဘို့ညွှန်ပြချက်၏တစ်မျိုးဖြစ်ပါသည်။ အမှား type ကို check လုပ်ထားလျှင်အပြင်, ထို့နောက် compiler ကမမေးအတိအလင်းဖိအားပေးပါလိမ့်မယ်။

အရင်းမြစ်များဖို့ကြိုးစားပါ

အဆိုပါဂျာဗားဗားရှင်း 7 ကို Developer များအရင်းမြစ်များနှင့်အတူတစ်ဦးကိုကုသပါပိတ်ပင်တားဆီးမှုအဖြစ်အဓိကဆန်းသစ်တီထွင်မှုပါဝင်သည်ပါပြီ။

အသုံးပြုမှုအရင်းအမြစ်များကိုထိန်းသိမ်းစောင့်ရှောက်ဖို့ပိတ်ပစ်ထားရမည်ပြီးနောက်အတော်များများကတ္ထု, ဂျာဗား၌ created နေကြသည်။ ယခင်ကကအကောင့်သို့ဤ ယူ. ကိုယ်တိုင်သည်ဤသာဓကကိုရပ်တန့်ခဲ့ရသည်။ သို့သျောယခုသူတို့ AutoClosable interface ကိုထင်ရှား။ , ဒါဟာအလိုအလျောက်ပါပိတ်ပင်တားဆီးမှုထဲတွင်နေရာပြီးသားကိုအသုံးပြုတ္ထုပိတ်ဖို့ရန်ကူညီပေးသည်။ ဒီချဉ်းကပ်မှုကနေတဆင့်က၎င်း၏ဖတ်နိုင်တဲ့သိသိသာသာတိုးပွါးအတွက်ကုဒ်ရေးသားဖို့ပိုပြီးအဆင်ပြေဖြစ်လာသည်။

ကိုယ်ပိုင်အတန်းဂျာဗားခြွင်းချက်

အဆိုပါဖော်ပြထားပရိုဂရမ်းမင်းဘာသာစကား၏ဖန်တီးသူအကောင့်သို့အရေးပေါ်အခြေအနေ၏ဒီဇိုင်းအမျိုးအစားအများအပြားရှုထောင့်ကိုယူ။ သို့သော်ရွေးချယ်စရာအပေါငျးတို့သဂျာဗား၌မိမိတို့ကိုယ်ပိုင်ခြွင်းချက်သတ်မှတ်နိုင်စွမ်းအကောင်အထည်ဖော်နိုင်အောင်, ဖြစ်ရပ်များ၏ရလဒ်ကိုအလုပ်လုပ်မည်မဟုတ်ပေကာကွယ်တားဆီးဖို့ကအထူးသဖြင့်ကုဒ်၏လိုအပ်ချက်များကိုဖြည့်ရန်သင့်လျော်သည်။

ဖန်တီးရန်အရိုးရှင်းဆုံးနည်းလမ်း - အရာဝတ္ထုအခြေအနေတွင်ရန်အသင့်လျော်ဆုံးအနေဖြင့်အမွေခံရရန်။

အဲဒီမှာ Exception မှသင်၏ကိုယ်ပိုင်ခြွင်းချက်သတ်မှတ်ဖို့အသုံးပြုကြောင်းအတန်းကိုအမွေခံရဖို့ဖြစ်ပျက်ခဲ့သည်။ တစ်ဦးက default, ဒုတိယ - - ထိုအငြင်းအခုံ msg type ကို String တွေနဲ့ MyException နှစ်ခုတည်ဆောက်ထားပါတယ်။

ထို့နောက်အများပြည်သူစာသင်ခန်း FullConstructors အတွက်လက်မှတ် MyException ပစ်ပါရှိသည်ပေးသောနည်းလမ်း, f, အကောင်အထည်ဖော်။ ဤသည်သော့ချက်စာလုံး, f, Java MyException ခြွင်းချက်များကဲ့သို့ပစ်နိုင်သည်ကိုဆိုလိုသည်။ ထို့ပြင်အဆိုပါနည်းလမ်းကိုခန္ဓာကိုယ်ထဲမှာပစ်အသုံးပြုပုံ console ကိုကိုယ်တိုင်နှင့်အမှန်တကယ်မျိုးဆက် MyException မှစာသားကိုသတင်းအချက်အလက် output ကိုထုတ်လုပ်ခဲ့ပါတယ်။

ဒုတိယနည်းလမ်းခြွင်းချက်တခုကိုသင်ဖန်တီးသည့်အခါ, ကဖမ်းမှာ console ထဲကရောင်ပြန်ဟပ်လိမ့်မည်သည့် string parameter တစ်ခု, လွန်ကြောင်းပထမဦးဆုံးတဦးတည်းအနေဖြင့်အနည်းငယ်ကွဲပြားခြားနားသည်။ အဓိက၌ (), f နှင့်ဂရမ် () တစ်ဦးပါစစ်ဆေးခြင်းကိုနှင့် MyException ဖမ်းဆီးဖို့ configured keyword ကိုဖမ်းအတွက်ချထားပါသည်။ ရှင်းပါတယ် အပြောင်းအလဲနဲ့၏ရလဒ် console ကို error message ကိုဖော်ပြရန်ဖြစ်ပါသည်:

ထိုသို့မိမိလက်ဖြင့်, ဂျာဗားခြွင်းချက် add သို့ရောက်ကြ၏။

ဗိသုကာခြွင်းချက်

ဂျာဗား၌ရှိသမျှသောအရာဝတ္ထုနှင့်ဝသကဲ့သို့, ခြွင်းချက်ကိုလည်းအမွေဆက်ခံပြီး hierarchical ဖွဲ့စည်းပုံမှာရှိနေကြသည်။ ဒီပရိုဂရမ်းမင်းဘာသာစကားမှာပစ်ချအားလုံးအမှားအယွင်းများ၏အမြစ်ဒြပ်စင်လူတန်းစား java.lang.Throwable ဖြစ်ပါတယ်။ မှားယွင်းနေသည်နှင့် Exception - နှစ်မျိုးသူ့ထံမှအမွေဆက်ခံ။

အမှား - ဟာအရေးပါအမှားအချက်ပြလိုက်ခြင်းနှင့်အမှတ်ကိုဖြုတ်လိုက်ပါဂျာဗားချွင်းချက်ဖြစ်ပါတယ်။ ကြားဖြတ်နှင့်အများဆုံးကိစ္စများတွင်ထိုကဲ့သို့သောဒေတာ processing ဒီဇိုင်းအဆင့်မှာမဟုတျဘဲနောက်ဆုံးလျှောက်လွှာကုဒ်အတွက်မိတ်ဆက်လိုအပ်နေကိုတွေ့ရှိနိုင်ပါသည်။

အဆိုပါခြွင်းချက်ဖန်တီးခြင်းနှင့်ခွဲခြားစိတ်ဖြာများအတွက်အများဆုံးအသုံးပြုလူတန်းစား Exception ဖြစ်ပါတယ်။ အရာ, အလှည့်၌, RuntimeException အပါအဝင်အများအပြားအကိုင်းအခက်, သို့ခွဲခြားထားတယ်။ RuntimeException by အစီအစဉ်အတွင်းမှာဖြစ်ပေါ်ကြောင်းဖြစ်ပါသည်, runtime ကချွင်းချက်ရှိပါတယ်။ ကနေဆင်းသက်လာအားလုံးအတန်းအတည်မပြုနိုင်သောဖြစ်ကြသည်။

မကြာခဏခြွင်းချက်ရှိပါတယ်

သငျသညျအသေးစိတ်အတွက်သူတို့ထဲကတစ်ဦးချင်းစီကိုဖော်ပြရန်သင့်ပါတယ်ဒါကြောင့်ဂျာဗားခြွင်းချက်ခုနှစ်တွင်အောက်တွင်တင်ဆက်သောများ၏စာရင်း, အများဆုံးမကြာခဏအသုံးပြုကြသည်:

  • ArithmeticException ။ ဤရွေ့ကားဂဏန်းသင်္ချာစစ်ဆင်ရေးနှင့်ဆက်စပ်အမှားအယွင်းများပါဝင်သည်။ ဆုံးထင်ရှားတဲ့ဥပမာ - သုညအားဖြင့်ဌာနခွဲ။
  • ArrayIndexOutOfBoundsException - အလျား၏စုစုပေါင်းထက်ကျော်လွန်သောခင်းကျင်းဒြပ်စင်အရေအတွက်အနေနဲ့အယူခံဝင်။
  • ArrayStoreException - ထိုစစ်ခင်းကျင်းတစ်ခုသဟဇာတဒြပ်စင်အမျိုးအစား assign ကြိုးစား။
  • ClassCastException - ခငျြးခငျြးမှားတစျဦး type ကိုဆောင်ကြဉ်းရန်ကြိုးစားကြပါတယ်။
  • IllegalArgumentException - နည်းလမ်းခေါ်ဆိုခအတွက်မှားယွင်းတဲ့အငြင်းအခုံကိုသုံးနိုင်သည်။
  • NegativeArraySizeException - သင်အနုတ်လက္ခဏာအရွယ်အစားတစ်ခုခင်းကျင်းဖန်တီးသည့်အခါတစ်ဦးခြွင်းချက်။
  • NullPointerException - တရားမဝင်သောမှကိုးကား၏အလွဲသုံးစားမှုများ။
  • NumberFormatException - တစ်ဦးကမှား string ကိုကူးပြောင်း integer သောအခါတွေ့ရှိနိုင်ပါသည်။
  • UnsupportedOperationException - စစ်ဆင်ရေးမပံ့ပိုးပါ။

ဤဥပမာအမှတ်ကိုဖြုတ်လိုက်ပါဂျာဗားခြွင်းချက်အမျိုးအစားများကိုကိုယ်စားပြုသည်။ ဒါပေမယ့်ဒါ check လုပ်ထားကွညျ့ရှု:

  • ClassNotFoundException - Class ကိုရှာမတွေ့ပါ။
  • IllegalAcccessException - အတန်းမှဝင်ရောက်ခွင့်ကန့်သတ်ထား။
  • InterruptedException - စီးဆင်းမှု၏ပြတ်တောက်။
  • NoSuchFieldException - မျှလိုအပ်တဲ့လယ်ပြင်ရှိပါတယ်။

အဆိုပါခြွင်းချက်၏အနက်ကို

မကြာခဏကြုံတွေ့ခြွင်းချက်၏စကားပြောသောဒီဇိုင်းမှာသူတို့ရဲ့အနက်, မှားယွင်းစွာရိပ်မိနိုင်သတိပြုသင့်ပါတယ်။ Next ကိုမမျှော်လင့်တဲ့အခွအေနရှိစခွေငျးငှါအဘယ်အရပ်ကပိုအသေးစိတ်အတွက်ရှင်းပြတိုတောင်းတဲ့စာရင်းဖြစ်ပါတယ်။

NullPointerException ။ ခြွင်းချက်တခုကိုလည်းမရှိသည့်အခါအလွန်ပထမဦးဆုံးအမှု, null နဲ့ညီတဲ့အရာဝတ္ထုတစ်ခုရည်ညွှန်းဖို့အယူခံဖို့ဖြစ်ပါတယ်။ ဒါဟာအစသုညလူတန်းစားဥပမာအားဖြင့်နည်းလမ်းများကိုဖို့ကိုတိုးချဲ့။ NullPointerException တန်းတူအရှည်တရားမဝင်သောခင်းကျင်းရယူ၏အမှု၌ချခြင်းကိုခံရလိမ့်မည်။ ထိုကဲ့သို့သောအခြေအနေများမှရှောင်ရှားရန်အခါအားလျော်စွာသည့်တရားမဝင်သောအပေါ်ဆိုဒ်များစစ်ဆေးပါလိမ့်မယ်။

ArrayIndexOutOfBoundsException ။ မဆို program ကို Array ကိုအသုံးပြုခြင်းမရှိဘဲမတည်ရှိနိုင်ပါ။ ထို့ကြောင့်သူကရန်မကြာခဏပြန်လည်ကု generate နှင့်အမှားနိုင်ပါတယ်။ တစ်ဦး developer အညွှန်းစာရင်းထဲတွင်မဟုတျကွောငျးတခုခင်းကျင်းဒြပ်စင်ဝင်ရောက်ဖို့ကြိုးစားပါတယ်သည့်အခါခြွင်းချက်တွေ့ရှိနိုင်ပါသည်။ ဥပမာ, မေတ္တာရပ်ခံတန်ဖိုးကိုသုညအရှည်အထက်တွင်သို့မဟုတ်အောက်တွင်ဖော်ပြထားသောဖြစ်ပါတယ်။ အလွန်မကြာခဏစစ်ခင်းကျင်းသုညတစ်ရမှတ်ဖြင့်အစပြုဆိုတဲ့အချက်ကို၏ရလဒ်ဖြစ်ပါသည်။

တွေ့ရှိချက်များ

ဂျာဗားခြွင်းချက်ကိုင်တွယ် - အလွန်ပရိုဂရမ်မာ၏လုပျငနျးနိုင်အောင်စီစဉ်ပေးထားတယ်သူ့ကိုစင်ကြယ်ခြင်းနှင့်ကုဒ်အမှားကငျးမဲ့ကိုဖန်တီးရန်ခွင့်ပြုထားတဲ့ဟာအစွမ်းထက် tool ကိုပတ်ဝန်းကျင်။ ဘယ်လိုချောချောမွေ့မွေ့နှင့်တည်ငြိမ်တွင်လည်ပတ်လျှောက်လွှာပြုစု၏ status များနှင့်ဂုဏ်သတင်းအပေါ်မူတည်ပါသည်။

ဟုတ်ပါတယ်, တစ်ဦးထက်ပိုသောသို့မဟုတ်ထိုထက်နည်းရိုးရှင်းသောအစီအစဉ်များအတွက်အများကြီးပိုမိုလွယ်ကူပုံမှန်မဟုတ်သောအခြေအနေများခြေရာကောက်ရန်။ သို့သော်တထောင်တရာအနည်းငယ်လိုင်းများများအတွက်ကြီးမားသောအလိုအလျောက်ရှုပ်ထွေးသော၌သာရေရှည်စမ်းသပ်ခြင်းနှင့်ဒီဘာဂင်၏ရလဒ်အဖြစ်ဖြစ်နိုင်ပါတယ်။

အချို့ applications များအတွက်ပေါ်ထွန်းရာမှ Java ကိုခြွင်းချက်အမှားအဘို့, တချို့ကုမ္ပဏီတွေကသူတို့နိူးရှာတွေ့သည့်အခါတစ်ဦးဆုလာဘ်ကိုဆက်ကပ်။ အထူးသဖြင့်လုံခြုံရေးမူဝါဒအဆော့ဖ်ဝဲကိုချိုးဖောက်စေသောသူတို့ကိုအများကတန်ဖိုးထား။

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 my.delachieve.com. Theme powered by WordPress.