Hvad er en Java.rmi.RemoteException ?

Selvom det ikke helt så indlysende som lyse røde bogstaver , en RemoteException betyder generelt noget gik grueligt galt . fejl digitalt billede af UBE fra Fotolia.com

Java-programmører bruger meget af deres udvikling tid på at planlægge passende exception handling, fra undtagelser, der opstår i bibliotekerne, de bruger til planlægning, som undtagelser, de vil generere medderes egen kode.Mens de fleste Java-kode omhandler fælles undtagelser, såsom der opstår fra fil fejl eller null referencer, er RemoteException mindre almindeligt stødt.Som sådan, er det svært for Java-programmører at få en klar forståelse af, når det er smidt, og hvad det kan betyde.

lidt baggrund om Remoting

  • Remoting er en af ​​de "mørke kunst" af programmering af computere til en masse udviklere.Faktisk er det nemt for udviklere at gå gennem en hel karriere uden at bekymre sig om det.Detaljerne er temmelig ubehagelig, men kernen i det er enkelt: et program på en computer kræver kode på en anden computer.

    at lette diskussionen lidt udtrykket "klient" vil henvise til ansøgningen programmøren udvikler, og "server" v

    il henvise til ansøgningen programmøren kommunikerer med.

Et glimt på hvordan Java Remoting Works

  • Detaljerne i at skrive et Java-program, der udfører Remoting ligger uden for rammerne af denne artikel, men de underliggende begreber er værd dækker.En ekstern formål er repræsenteret ved en grænseflade.Bygherren vil få en forekomst af interface og kalde en metode på det.

    Denne indkaldelse vil sende anmodningen til serveren, som vil behandle nogen parametre (og returnere et resultat, hvis nødvendigt).Processen med at sende objekter / parametre til og fra serveren kaldes "rangering", og processen med at tage de rangeres data og omsætte det tilbage til brugbare genstande kaldes "unmarshalling".

Årsager

  • Selvfølgelig kan tingene altid gå galt.Måske et program kalder en funktion, der ikke findes på den anden computer.For eksempel, hvis du prøver at ringe til a.foo () ved hjælp af RMI, og versionen på den computer, du kommunikerer med ikke har a.foo () defineret, tingene pause.En anden mulighed er, at der opstod en fejl på serveren program, såsom en databaseforbindelse problem.

    Når det sker, får du en RemoteException eller en af ​​dens underklasser.

Flavors of RemoteException

  • Der er forskellige underklasser af RemoteException til at håndtere forskellige situationer, der kan opstå (se afsnittet Ressourcer til en udtømmende liste over underklasser).For eksempel, hvis der opstår et problem, mens rangering eller unmarshalling objekterne, en MarshalException eller UnmarshalException vil blive kastet henholdsvis.Hvis der opstår en undtagelse, der ikke er erklæret i den kaldte metode underskrift (dvs. en ukontrolleret runtime undtagelse), vil en UnexpectedException blive kastet - det kunne være en NullPointerException på serveren ende, for eksempel.

Håndtering RemoteExceptions

  • Mens almen Java praksis anbefaler at fange de mest specialiserede instans af en undtagelse, kan det være vanskeligt at opnå, når man arbejder med RMI.Der er for mange potentielle undtagelser at overveje, når man ser på de forskellige RemoteException underklasser, der beskæftiger sig med dem individuelt sandsynligvis ikke umagen værd.

    det er sagt, en udvikler kan fokusere på potentielle problemområder, der kan være mere eller mindre indlysende under udvikling.For eksempel i det første forsøg på en fjern fremgangsmåde opkald (måske i anvendelse initialisering), kan bygherren forsøger at håndtere en UnknownHostException på et specialiseret måde.En anden mulighed kunne være en generisk RemoteException handler, der kunne tage forskellige handlinger baseret på den specifikke undtagelse stødt.

Ressourcer

  • Rymden: A (humoristisk) liste over almindelige undtagelser med forklaringer
  • Sun: Trail på fjernbetjening metode Invocation
  • Mind Prod: En Liste over diverse Java undtagelser, mange med Detaljer / Noter
125
0
3
Java Programmering