CyfrifiaduronRhaglennu

Java: eithriadau a'u trin

Bydd unrhyw rhaglen yn gweithredu stably dim ond os y cod ffynhonnell yn cael ei debugged, ac nid oes unrhyw amodau sy'n gallu achosi sefyllfaoedd annisgwyl. Mae'r broses o ddal methiannau posibl yn cael ei wneud ar y llwyfan rhaglennu. I wneud hyn, y datblygwr yn cymryd i ystyriaeth yr holl ganlyniadau disgwyliedig ac ymdrechion i gyfyngu ar effaith y gwall fel na allai ymyrryd â gweithrediad y rhaglen, neu arwain at ei gwymp.

Pryd allech chi ei angen trin eithriad

Yn Java, gall eithriad gael ei achosi gan fewnbwn defnyddiwr anghywir, nid oes angen am adnodd neu raglen datgysylltu rhwydwaith sydyn. At ddefnydd cyfforddus a grëwyd gan y datblygwr cais, rhaid i chi reoli achosion o sefyllfaoedd brys. Ni ddylai'r defnyddiwr orfod aros i roi'r gorau iddi cais, colli data o ganlyniad i eithriad heb eu trin, neu dim ond rhan o'r neges yn ymddangos yn datgan bod rhywbeth yn mynd o'i le.

Trin eithriadau Java

Beth i'w hystyried? Mae gan yr iaith Java ei ymarferoldeb trin eithriad adeiledig yn eu hunain. Wrth gwrs, mae canran fawr o wallau yn cael ei ddal yn ôl cyfnod casgliad arall, bydd y system yn rhoi gwybod bod defnydd nid yw bellach yn bosibl yn awtomatig. Ond mae y math hwn o eithriad sy'n digwydd pan mae'n gweithredu. Dylai'r datblygwr fod yn gallu rhagweld ac i ddylunio y cod fel nad oedd yn achosi gwall, ac ymdrin â hi mewn ffordd arbennig a'i drosglwyddo rheolaeth i gangen arall.

Yn Java, mae hyn yn cael ei gosod gan y compiler i ddal eithriad, felly mae'r problemau nodweddiadol yn hysbys ac yn cael phatrymau ymarfer safonol.

gwaharddiadau nodweddiadol

Mae'r enghraifft symlaf, lle gallwch gael eithriad - rhaniad hwn. Er gwaethaf ei symlrwydd, o ran, fel rhannwr, gallai fod yn sero, a fydd yn arwain at gamgymeriad. Wel, os yw'n bosibl rhagweld y ymddangosiad y gorffennol ac atal. Ond nid yw'r opsiwn hwn ar gael bob amser, felly dylai dal eithriad yn cael eu trefnu yn uniongyrchol yn achos o "rannu â sero".

Mae'r mecanwaith Java i ryng-gipio gwall brosesu yn edrych fel hyn:

  • tomen gwrthrych eithriad yn cael ei greu, yn ogystal ag unrhyw un arall;
  • y cwrs naturiol y rhaglen yw torri ar draws;
  • mecanwaith gwahardd yn ceisio dod o hyd i ffordd arall i barhau â'r cod;
  • Dod o hyd i gweithredu diogel y rhaglen yn y prosesydd, gwaith neu ei adfer, neu a fydd yn digwydd gwireddu eithriad mewn ffordd arbennig.

Yr enghraifft symlaf o greu camgymeriad gallai edrych fel hyn:

os (a null ==)

taflu NullPointerException newydd ();

Yma, y newidyn yn cael ei wirio yn initialization, hy, Nid yw a yw'r cyfeiriad at wrthrych null. Os bydd y sefyllfa wedi codi ac mae angen trin arbennig, eithriad yn cael ei daflu gan tafliad NullPointerException newydd ().

Ychydig o fanylion am eiriau allweddol

Wrth ddelio gydag eithriadau yn aml mae angen i ddefnyddio'r Java gair allweddol i gyfeirio at gamau penodol. Mae'r iaith o'u pum rhaglennu:

  • Rhowch gynnig. Mae'r gair allweddol yn barod eu bodloni, ac mae'n golygu cyfnod pontio i mewn i ran o'r cod a all daflu eithriad. Bloc bresys cyfyngedig {}.
  • Catch. Mae'n rhyng-gipio y math eithriad a ddymunir ac yn trin yn briodol.
  • Yn olaf. Mae'r gair allweddol yn ddewisol ac yn cael ei ddefnyddio i berfformio darn penodol o god, sydd ei angen beth bynnag, hyd yn oed os nad oes unrhyw eithriad yn cael ei ddal. Ychwanegwyd yn uniongyrchol ar ôl bloc cais.
  • Taflwch - gadael i chi greu eithriadau Java o unrhyw le.
  • Taflu - allweddair sy'n cael ei osod yn y llofnod dull. Mae'n golygu y gall y cod canlynol taflu eithriad o'r math hwn Java. Mae'r marc yn gwasanaethu fel arwydd i ddatblygwyr y mae angen eu cadw mewn cof - ni all y dull yn gweithio yn ôl y disgwyl ohono.

Dal gyda chais

Rhyddhau i eithriadau Java, yn naturiol yn cymryd yn ganiataol y bydd yn cael ei drin mewn ffordd arbennig. Y ffordd fwyaf cyfleus i wneud hynny, os bydd yr adran cod wedi'i ffensio i ffwrdd mewn bloc. A all gynnwys eithriad. Pan fyddwch yn rhedeg y cod hwn, bydd y 'n weithredol beiriant ddod o hyd i sefyllfa annisgwyl, yn deall bod bloc beirniadol a throsglwyddiadau rheoli i'r orsaf i brosesu.

Mae'r cod Java wedi'i lapio mewn cais bloc arbennig, lle gall fod yn eithriad. Felly, roedd yn gosod nifer o sefyllfaoedd annisgwyl a fydd yn cael eu dal yn yr un lle, nid raspolzayas cod.

Mae'r cod mwyaf nodweddiadol i'r uned brosesu fel a ganlyn:

ceisiwch {

// Dyma ychydig cod all greu eithriad

} Dal (identifikator_1 Tip_isklyucheniya_1) {

// Yma mae trin eithriad, yn ôl ei fath ac amodau;

} Dal (identifikator_2 Tip_isklyucheniya_2) {

// Yma mae trin eithriad, yn ôl ei fath ac amodau;

}

dal Keyword yn adrodd bod cod, ac yn sganio am eithriad, gael ei drin fel y disgrifir isod, ar yr amod ei fod yn cydymffurfio â'i fath. Gall y dynodwr yn cael ei ddefnyddio wrth brosesu y bloc cod fel dadleuon.

Yn olaf

Fel y daeth yn amlwg o'r bennod flaenorol, blociau dal dal eithriadau ac yn eu prosesu. Ond yn aml iawn, mae'r sefyllfa yn codi lle y dylai cynnal rhai cod, ni waeth a ydynt yn cael eu dal camgymeriadau. Ar gyfer hyn, mae y gair allweddol o'r diwedd. Mae'n cael ei ddefnyddio i gynyddu gwerthoedd y gwahanol cownteri, cau ffeiliau neu gysylltiadau rhwydwaith.

Mae'r plot yn cyflwyno nifer o flociau dal dyfeisio dulliau dal eithriadau. Er enghraifft, mae'r cod a gynhwysir yn y cais yn creu sefyllfa annisgwyl fel Oer. Yna, bydd y consol yn cael ei arddangos mynegiant «Dal oer!» Ac «A yw hynny'n rhywbeth i godi ei galon am?». Hynny yw, y bloc yn olaf cael ei chyflawni mewn unrhyw achos.

Yn wir, yn ffordd i osgoi sbarduno yn olaf yno. Mae'n gysylltiedig â chwblhau'r beiriant rhithwir. Dod o hyd i sut i'w weithredu, mae'n bosibl ar y mannau agored Rhyngrwyd.

keyword Taflwch

Taflwch yn cynhyrchu eithriad. Mae ei cystrawen fel a ganlyn:

taflu NewException newydd ();

Mae yn cael ei greu eithriad newydd i'r NewException math (). Fel y gellir ei ddefnyddio yn fath eisoes wedi'i gynnwys yn y dosbarthiadau llyfrgell Java safonol a ddiffiniwyd yn flaenorol gan y datblygwr ei cynhyrchu ei hun.

Mae'r cynllun hwn yn rhan o'r disgrifiad o unrhyw ddull, y dylai'r alwad wedyn yn digwydd o fewn y bloc cais, er mwyn gallu i ryng-gipio ef.

Keyword taflu

Beth os bydd yn y broses o ddatblygu sefyllfa lle y gall y dull daflu eithriad, ond nid ydynt yn gallu trin yn iawn. I'r perwyl hwn, yn y llofnod dull yn nodi y gair taflu a'r math o eithriadau posibl.

Mae'r label yn fath o ddangosydd ar gyfer datblygwyr cleient nad oedd y dull yn gallu trin eu un eithriad. Yn ogystal, os yw'r math o wall yn cael ei wirio, yna bydd y casglwr yn gorfodi benodol yn gofyn amdano.

Ceisiwch adnoddau

Mae'r fersiwn Java 7 datblygwyr wedi cynnwys arloesi mawr, fel bloc triniaeth cais gydag adnoddau.

Mae llawer o wrthrychau yn cael eu creu mewn Java, ar ôl dylid eu defnyddio yn cael eu cau i lawr i arbed adnoddau. Gynt roedd cymryd hyn i ystyriaeth ac yn atal yr achosion hyn â llaw. Erbyn hyn, fodd bynnag, maent yn ymddangos rhyngwyneb AutoClosable. Mae'n helpu i gau gwrthrychau ddefnyddio eisoes rhoi mewn bloc cais yn awtomatig. Trwy'r dull hwn, mae wedi dod yn fwy cyfleus i ysgrifennu cod yn ei ddarllenadwyedd yn cynyddu'n sylweddol.

dosbarthiadau eu hunain eithriadau Java

Cymerodd y crewyr y iaith raglennu a ddisgrifiwyd i ystyriaeth sawl agwedd ar y mathau dylunio o argyfyngau. Fodd bynnag, mae pob un o'r opsiynau i atal na fydd y canlyniad o ddigwyddiadau yn gweithio, felly yn Java rhoi ar waith y gallu i ddiffinio eu hunain eithriadau, mae'n briodol i anghenion y cod penodol.

Y ffordd symlaf i greu - i etifeddu oddi wrth y mwyaf addas i'r cyd-destun gwrthrych.

Mae ddigwyddodd i etifeddu o Eithriad, y dosbarth sy'n cael ei ddefnyddio i ddiffinio eich eithriadau hun. Yn MyException Mae dau adeiladwyr - diofyn, yr ail - gyda'r Llinynnol ddadl math msg.

Yna, yn y f dull FullConstructors ystafell ddosbarth cyhoeddus ar waith, sy'n cynnwys y llofnod yn taflu MyException. Mae hyn yn keyword yn golygu y gall f daflu fel eithriad Java MyException. Ymhellach, yn y corff dull cynhyrchu allbwn gwybodaeth testun i'r consol ei hun a'r MyException genhedlaeth ei hun, gan daflu.

Yr ail ddull ychydig yn wahanol i'r un cyntaf pan fyddwch yn creu eithriad, caiff ei drosglwyddo paramedr llinyn, a fydd yn cael ei adlewyrchu yn y consol yn dal. Ar y cyfan, mae'n amlwg bod f () a g () yn cael eu rhoi mewn gwirio arni a dal keyword ffurfweddu i ddal MyException. Canlyniad prosesu yw i arddangos neges gwall i'r consol:

Felly daeth i ychwanegu eithriadau Java, gan ei law ei hun.

eithriadau pensaernïaeth

Fel yn achos pob wrthrychau yn Java, eithriadau hefyd yn cael eu hetifeddu ac mae ganddynt strwythur hierarchaidd. Yr elfen gwraidd pob wallau taflu yn yr iaith raglennu yn y dosbarth java.lang.Throwable. Etifeddwyd oddi wrtho dau fath - Gwall ac Eithriad.

Gwall - arwydd o gwall beirniadol ac mae'n eithriadau Java unchecked. Rhyng-gipio a phrosesu data o'r fath yn y rhan fwyaf o achosion yn digwydd ar y cam dylunio, ac nid y mae angen eu cyflwyno yn y cod cais terfynol.

Mae'r dosbarth mwyaf cyffredin a ddefnyddir ar gyfer creu a dadansoddi eithriadau yw Eithriad. Sydd, yn ei dro, yn cael ei rhannu yn nifer o ganghennau, gan gynnwys RuntimeException. Erbyn RuntimeException eithriadau Rhedeg, hynny yw, yn digwydd yn ystod y rhaglen. Mae pob dosbarth yn deillio ohono yn eu dilysu.

Yn aml, mae yna eithriadau

Mewn eithriadau Java, y rhestr o a gyflwynir isod, yn cael eu defnyddio fwyaf aml, felly dylech ddisgrifio pob un ohonynt yn fanwl:

  • ArithmeticException. Mae'r rhain yn cynnwys camgymeriadau sy'n gysylltiedig â gweithrediadau rhifyddeg. Yr enghraifft fwyaf amlwg - yr is-adran gan sero.
  • ArrayIndexOutOfBoundsException - apêl i'r rhif elfen amrywiaeth sy'n fwy na chyfanswm ei hyd.
  • ArrayStoreException - ymgais i aseinio math elfen anghydnaws o'r rhesi.
  • ClassCastException - ymgais i ddod â'r anghywir un math i'r llall.
  • IllegalArgumentException - defnyddio'r ddadl anghywir yn yr alwad dull.
  • NegativeArraySizeException - yn eithriad pan fyddwch yn creu amrywiaeth o faint negyddol.
  • NullPointerException - camddefnydd o gyfeiriadau at null.
  • NumberFormatException - yn digwydd pan fydd trosi llinyn anghywir i cyfanrif.
  • UnsupportedOperationException - nid llawdriniaeth yn cael ei gefnogi.

Mae'r enghreifftiau hyn yn cynrychioli mathau o eithriadau Java unchecked. Ond hyd yn edrych gwirio:

  • ClassNotFoundException - Dosbarth Nid yw dod o hyd.
  • IllegalAcccessException - cyfyngu mynediad i'r dosbarth.
  • InterruptedException - ymyrraeth llif.
  • NoSuchFieldException - nid oes unrhyw maes angenrheidiol.

Mae'r dehongliad o'r eithriadau

Dylai Wrth siarad o eithriadau gweld yn aml yn cael ei nodi bod eu dehongliad yn y dyluniad, y gellir ei weld yn anghywir. Nesaf yn rhestr fer yn egluro yn fwy manwl, lle gall fod yn sefyllfa annisgwyl.

NullPointerException. Yr achos cyntaf pan mae eithriad, yw apelio at gyfeiriad at wrthrych sydd yn hafal i null. Mae hefyd yn ymestyn at y dulliau sero enghraifft dosbarth. Efallai NullPointerException cael eu taflu yn achos cael gafael ar hyd amrywiaeth null cyfartal. Er mwyn osgoi sefyllfaoedd o'r fath bydd o bryd i'w gilydd yn gwirio safleoedd ar y null.

ArrayIndexOutOfBoundsException. Ni all unrhyw raglen fodoli heb y defnydd o araeau. Yn unol â hynny, gall y droi yn aml iddo gynhyrchu a chamgymeriadau. Eithriad yn digwydd pan fydd datblygwr yn ceisio cael mynediad elfen amrywiaeth nad yw yn y rhestr mynegai. Er enghraifft, mae'r gwerth y gofynnir amdani yn uwch neu'n is na sero hyd. Yn aml iawn, yn sgil y ffaith bod yn y casgliad yn dechrau gyda sgôr o sero.

canfyddiadau

Trin eithriadau Java - amgylchedd offeryn pwerus, sy'n hwyluso gwaith y rhaglennydd yn fawr ac yn caniatáu iddo greu lân ac yn amddifad o wallau cod. Ar gais gweithrediad pa mor llyfn a sefydlog yn dibynnu ar statws ac enw da y datblygwr.

Wrth gwrs, mewn mwy neu lai rhaglenni syml i olrhain sefyllfaoedd annormal yn llawer haws. Ond mewn cyfadeiladau awtomataidd mawr am ychydig gan mil o linellau, mae'n bosib dim ond o ganlyniad i brofion hirdymor a debugging.

Ar gyfer Java gwall eithriad rhag sy'n codi mewn rhai ceisiadau, mae rhai cwmnïau yn cynnig gwobr pan fyddant yn dod o hyd i selogion. werthfawrogi Yn enwedig gan y rhai sy'n achosi groes y feddalwedd polisi diogelwch.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

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