OrdinadorsProgramació

Java: les excepcions i el seu maneig

Qualsevol programa funcionarà de forma estable només si el codi font es depura, i no hi ha condicions que poden causar situacions imprevistes. El procés de captura dels possibles errors es porta a terme en la fase de programació. Per a això, el desenvolupador té en compte tots els resultats esperats i els intents de limitar l'efecte de l'error, de manera que no podia interferir en el funcionament del programa, o conduir al seu col·lapse.

Quan es pot necessitar maneig d'excepcions

En Java, una excepció pot ser causada per l'entrada d'usuari incorrecte, hi ha necessitat d'una sobtada programa de desconnexió de la xarxa de recursos o. Per a un ús còmode creada pel desenvolupador de l'aplicació, s'ha de controlar l'aparició de situacions d'emergència. El consumidor no ha de tenir d'esperar a sortir d'una aplicació, la pèrdua de dades com a resultat d'una excepció no controlada, o només una part d'un missatge que indica que alguna cosa ha anat malament.

Maneig d'excepcions de Java

Què tenir en compte? El llenguatge Java té la seva pròpia funcionalitat de gestió d'excepcions incorporada. Per descomptat, un gran percentatge d'error és capturat per una altra etapa de la compilació, el sistema li notificarà automàticament que el seu ús ja no és possible. Però no és aquest tipus d'excepció que es produeix en temps d'execució. Podeu trobar l'ha de poder preveure i dissenyar el codi perquè no va causar un error, i es maneja d'una manera especial i va lliurar el control a una altra branca.

En Java, això és imposada pel compilador per capturar una excepció, pel que són coneguts els problemes típics i tenen uns patrons d'exercici estàndard.

exclusions típiques

L'exemple més simple, en el qual es pot obtenir una excepció - aquesta divisió. Malgrat la seva simplicitat, en termes, com un divisor, pot ser zero, el que resultarà en un error. Bé, si és possible predir l'aparició del passat i prevenir. No obstant això, aquesta opció no sempre està disponible, de manera que la captura de l'excepció s'ha d'organitzar directament en el cas de "divisió per zero".

El mecanisme de Java per interceptar error de processament és el següent:

  • es crea objecte d'excepció munt, així com qualsevol altre;
  • el curs natural del programa s'interromp;
  • mecanisme d'exclusió està tractant de trobar una forma alternativa per continuar amb el codi;
  • Troba una execució segura del programa en el processador, la feina o restaurat, o ocorrerà realització d'excepció d'una manera especial.

L'exemple més simple de crear una errada podria tenir aquest aspecte:

si (a nul ==)

llançar nova NullPointerException ();

Aquí, la variable a està marcada a la inicialització, és a dir, no és si la referència a un objecte nul. Si aquesta situació ha sorgit i necessiten un tractament especial, una excepció és llançada per un tir de nou NullPointerException ().

Pocs detalls sobre les paraules clau

Quan es tracta d'excepcions sovint és necessari l'ús de la paraula clau de Java per referir-se a una acció particular. Aquest llenguatge de la seva programació de cinc:

  • Tractar. Aquesta paraula clau es ja es va reunir, i significa una transició en una secció de codi que pot llançar una excepció. Bloc claus {} limitats.
  • Captura. Es intercepta el tipus d'excepció desitjada i gestionar apropiadament.
  • Finalment. Aquesta paraula clau és opcional i s'utilitza per realitzar una determinada peça de codi, que es requereix de totes maneres, encara que no és una excepció no es detecta. Afegit directament després del bloc try.
  • El tir - li permet crear excepcions de Java des de qualsevol lloc.
  • Llança - una paraula clau que es col·loca en la signatura del mètode. Això vol dir que el següent codi pot llançar una excepció d'aquest tipus Java. Aquesta marca serveix com un senyal per als desenvolupadors que s'han de tenir en compte - el mètode no pot funcionar com s'espera d'ell.

La captura amb un provar

Llançament d'excepcions de Java, naturalment, se suposa que serà manejat d'una manera especial. La forma més convenient de fer-ho, si la secció de codi està tancat en un bloc. Que pot contenir una excepció. Quan s'executa aquest codi, la màquina virtual trobarà una situació inesperada, entendre que hi ha un bloc crític i transfereix el control a l'estació amb el processament.

El codi Java s'embolica en un intent bloc especial, dins de la qual pot ser una excepció. Per tant, va col·locar diverses situacions imprevistes que es capturen en el mateix lloc, no raspolzayas codi.

El codi més típica a la unitat de processament és el següent:

try {

// Aquí hi ha un codi que pot generar una excepció

} Catch (identifikator_1 Tip_isklyucheniya_1) {

// Aquí hi ha control d'excepcions, d'acord amb el seu tipus i les condicions;

} Catch (identifikator_2 Tip_isklyucheniya_2) {

// Aquí hi ha control d'excepcions, d'acord amb el seu tipus i les condicions;

}

captura Keyword informa que el codi, i escanejar una excepció, a ser tractat com es descriu a continuació, sempre que compleixi amb el seu tipus. L'identificador es pot utilitzar en el processament del bloc de codi com a arguments.

finalment

Com es va posar de manifest des del capítol anterior, els blocs de captura capturar les excepcions i processar-los. No obstant això, molt sovint la situació es planteja quan s'ha d'executar algun codi, independentment de si van ser capturats errors. Per a això hi ha la paraula clau finalment. S'utilitza per augmentar els valors dels diferents comptadors, tancament d'arxius o connexions de xarxa.

Aquesta parcel·la presenta diversos blocs catch van inventar mètodes de captura excepcions. Per exemple, el codi contingut en el try genera una situació inesperada com el fred. A continuació, la consola es mostrarà l'expressió «refredat!» I «És això alguna cosa que celebrar?». És a dir, el bloc finally s'executa en qualsevol cas.

De fet, una manera d'evitar el desencadenament finalment allà. Està connectada amb la realització de la màquina virtual. Trobar la manera de posar-la en pràctica, és possible en els espais oberts d'Internet.

paraula clau Throw

Tir genera una excepció. La seva sintaxi és la següent:

llançar nova NewException ();

Es crea una nova excepció a la NewException tipus (). Com un tipus es pot utilitzar ja està inclòs en les llibreries de classes de Java estàndard i prèviament definit pel desenvolupador de la seva pròpia producció.

Aquest disseny és part de la descripció de qualsevol mètode, que després s'ha de produir l'anomenada dins el bloc try, per tal de ser capaços de interceptar.

Paraula clau llança

I si en el procés de desenvolupament d'una situació en què el mètode pot llançar una excepció, però no són capaços de manejar correctament. Amb aquesta finalitat, en la signatura del mètode especifica la paraula llança i el tipus de possibles excepcions.

Aquesta etiqueta és una espècie d'indicador per a desenvolupadors de clients que el mètode no és capaç de manejar la seva mateixa excepció. A més, si es comprova el tipus d'error, llavors el compilador obligarà explícitament demanar-ho.

Intenta recursos

Els desenvolupadors de Java versió 7 han inclòs una innovació important, com un bloc de tractament intent amb recursos.

Molts objectes són creats en Java, després del seu ús ha de ser tancat per conservar els recursos. Anteriorment s'havia de tenir això en compte i posar fi a aquests casos de forma manual. Ara, però, van aparèixer interfície AutoClosable. Ajuda a tancar automàticament els objectes ja usats col·locats en un bloc try. A través d'aquest enfocament s'ha tornat més convenient escriure codi a la seva llegibilitat s'incrementa significativament.

classes pròpies excepcions de Java

Els creadors del llenguatge de programació descrit van prendre en compte molts aspectes dels models tipus d'emergències. No obstant això, totes les opcions per evitar que el resultat dels esdeveniments no funcionarà, de manera que en Java implementa la capacitat de definir les seves pròpies excepcions, és adequada a les necessitats del codi particular.

La forma més senzilla de crear - a heretar dels més apropiats per al context de l'objecte.

Allí va passar a heretar d'Excepció, la classe que s'utilitza per definir les seves pròpies excepcions. En MiExcepción té dos constructors - un defecte, el segon - amb la cadena d'arguments de tipus MSG.

Després, en el mètode FullConstructors aula pública implementat f, que conté la signatura llança MiExcepción. Aquesta paraula clau significa que f pot llançar com Java MiExcepción excepció. A més, en el cos del mètode produït text de sortida d'informació a la consola en si i la MiExcepción actual generació, pel tir.

El segon mètode és lleugerament diferent de la primera que quan es crea una excepció, es passa un paràmetre de cadena, el que es reflectirà en la consola en la captura. En el principal, està clar que f () ig () es col·loquen en un compte de xecs tractar d'atrapar paraula clau configurat per capturar MiExcepción. El resultat del procés és per mostrar un missatge d'error a la consola:

Per tant es tractava d'afegir excepcions de Java, per la seva pròpia mà.

arquitectura excepcions

Igual que amb tots els objectes de Java, excepcions també són heretats i tenen una estructura jeràrquica. L'element arrel de tots els errors generats en aquest llenguatge de programació és de classe java.lang.Throwable. Heretat d'ell dos tipus - errors i excepcions.

Error - assenyala l'error crític i és excepcions Java sense marcar. Intercepció i processament d'aquestes dades en la majoria dels casos es produeix en l'etapa de disseny i no en la necessitat d'introduir en el codi de l'aplicació final.

La classe més comunament utilitzat per a la creació i l'anàlisi de les excepcions és l'excepció. La qual cosa, al seu torn, es divideix en diverses branques, incloent RuntimeException. Per RuntimeException són excepcions de temps d'execució, és a dir, que es produeixen durant el programa. Totes les classes de derivats d'ella són no verificable.

Sovint hi ha excepcions

En les excepcions de Java, es presenta a continuació la llista de les quals, s'utilitzen amb més freqüència, per la qual cosa ha de descriure cadascuna d'elles en detall:

  • ArithmeticException. Aquests inclouen els errors associats amb les operacions aritmètiques. L'exemple més clar - la divisió per zero.
  • ArrayIndexOutOfBoundsException - una apel·lació al nombre d'element de matriu que excedeix el total de la seva longitud.
  • ArrayStoreException - intent d'assignar un tipus d'element incompatible de la matriu.
  • ClassCastException - un intent de portar al mal un tipus a un altre.
  • IllegalArgumentException - amb l'argument incorrecte en la crida al mètode.
  • NegativeArraySizeException - una excepció quan es crea una matriu de mida negatiu.
  • NullPointerException - mal ús de referències a null.
  • NumberFormatException - es produeix quan una conversió de cadena a sencer equivocada.
  • UnsupportedOperationException - operació no és compatible.

Aquests exemples representen els tipus d'excepcions de Java sense marcar. Però per tal de buscar verificat:

  • No s'ha trobat Classe - ClassNotFoundException.
  • IllegalAcccessException - restringir l'accés a la classe.
  • InterruptedException - interrupció del flux.
  • NoSuchFieldException - hi ha cap camp obligatori.

La interpretació de les excepcions

Parlant d'excepcions es troben amb freqüència cal assenyalar que la seva interpretació en el disseny, pot ser percebut de forma incorrecta. El següent és una breu llista d'explicar amb més detall, on pot haver-hi una situació inesperada.

NullPointerException. El primer cas quan hi ha una excepció, és apel·lar a una referència a un objecte que és igual a null. També s'estén als mètodes d'instància de classe zero. NullPointerException pot ser llançat en el cas de l'obtenció d'una longitud de la matriu nul·la d'igualtat. Per evitar aquestes situacions comprovarà periòdicament els llocs de la nul·la.

ArrayIndexOutOfBoundsException. Qualsevol programa no pot existir sense l'ús de matrius. En conseqüència, el recurs freqüent a la qual pot generar i error. Excepció es produeix quan un desenvolupador intenta accedir a un element de matriu que no està en la llista d'índexs. Per exemple, el valor sol·licitat està per sobre o per sota de longitud zero. Molt sovint és el resultat del fet que en la matriu comença amb una puntuació de zero.

troballes

Maneig d'excepcions de Java - un entorn potent eina, el que facilita enormement el treball del programador i li permet crear un ambient net i lliure d'errors de codi. En funcionament l'aplicació del que suau i estable depèn de la posició i reputació del desenvolupador.

Per descomptat, en uns programes més o menys senzilles per rastrejar situacions anormals molt més fàcil. No obstant això, en grans complexos automatitzats per a uns pocs centenars de milers de línies que només és possible com a resultat de les proves i la depuració a llarg termini.

Per error d'excepció de Java des del qual sorgeixen en algunes aplicacions, algunes companyies ofereixen una recompensa quan es troben entusiastes. Especialment apreciat pels que causen una violació de la política de seguretat de programari.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

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