Wat is een java.rmi.RemoteException ?

Hoewel niet zo vanzelfsprekend als heldere rode letters , een RemoteException betekent over het algemeen iets ging vreselijk mis . fout digitaal beeld door UBE uit Fotolia.com

Java-programmeurs besteden veel van hun ontwikkeling tijd van plan geschikte exception handling, van uitzonderingen die zich voordoen in de bibliotheken die ze gebruiken om de planning die uitzonderingen zullen ze genereren methun eigen code.Terwijl de meeste Java-code deals met gemeenschappelijke uitzonderingen, dat een dergelijke voortvloeien uit bestand fouten of null referenties, wordt de RemoteException minder vaak aangetroffen.Als zodanig is het moeilijk voor Java-programmeurs om een ​​stevige greep van wanneer het geworpen krijgen en wat het zou kunnen betekenen.

Een beetje achtergrondinformatie over Remoting

  • Remoting is één van de "donkere kunsten" van het programmeren van computers om veel ontwikkelaars.In feite, is het gemakkelijk voor ontwikkelaars om te gaan door middel van een hele carrière zonder zorgen te maken over het.De details zijn erg smerig, maar de essentie ervan is simpel: een programma op ee

    n computer vraagt ​​code op een andere computer.

    Om de discussie een beetje te verlichten, de term "cliënt" zal verwijzen naar de toepassing van de programmeur is het ontwikkelen, en "server" zal verwijzen naar de toepassing van de programmer communiceert met.

Een glimp van hoe Java Remoting werkt

  • De details van het schrijven van een Java-programma dat remoting voert buiten het bestek van dit artikel, maar de onderliggende concepten waard zijn bekleding.Een externe object wordt gerepresenteerd door een interface.De ontwikkelaar zal een instantie van de interface te verkrijgen en bel een methode op.

    Deze oproep wordt het verzoek naar de server, die alle parameters zal verwerken sturen (en een resultaat terug te keren indien nodig).De procedure waarmee objecten / parameters naar en van de server wordt "rangeren", en het proces van het nemen van de marshalled gegevens en vertalen naar bruikbare objecten "unmarshalling" genoemd.

Veroorzaakt

  • Natuurlijk kan er altijd fout gaan.Misschien een programma noemt een functie die niet bestaat op de andere computer.Bijvoorbeeld, als je probeert te a.foo () met behulp van RMI, en de versie op de computer die u communiceert met bellen heeft a.foo niet () gedefinieerd, dingen breken.Een andere mogelijkheid is dat een fout is opgetreden op de server-programma, zoals een database connectie probleem.

    Wanneer dit gebeurt, heb je een RemoteException of een van de subklassen te krijgen.

Flavors of RemoteException

  • Er zijn verschillende subklassen van RemoteException aan verschillende situaties die zich kunnen voordoen (zie het gedeelte Bronnen voor een uitputtende lijst van subklassen) te behandelen.Bijvoorbeeld, als er een probleem optreedt tijdens het rangeerterrein of unmarshalling de objecten, een MarshalException of UnmarshalException zullen respectievelijk worden gegooid.Als een uitzondering dat geen handtekening van de opgeroepen methode (bijvoorbeeld een ongecontroleerde runtime uitzondering) wordt aangegeven optreedt, wordt een UnexpectedException worden geworpen - dit kan een NullPointerException aan het uiteinde server, bijvoorbeeld.

Handling RemoteExceptions

  • Terwijl de algemene Java praktijk adviseert de meest gespecialiseerde instantie van een uitzondering te vangen, kan dit moeilijk zijn te bereiken bij het werken met RMI.Er is te veel potentiële uitzonderingen te overwegen als we kijken naar de verschillende RemoteException subklassen dat het omgaan met hen afzonderlijk waarschijnlijk niet de moeite waard.

    Dat gezegd hebbende, een ontwikkelaar kan zich richten op mogelijke probleemgebieden die meer of minder duidelijk kan zijn tijdens de ontwikkeling.Bijvoorbeeld, in de eerste poging op een externe methodeaanroep (misschien initialiseren van de toepassing), kan de ontwikkelaar proberen een UnknownHostException verwerken gespecialiseerde manier.Een andere mogelijkheid zou een generieke RemoteException handler die verschillende acties op basis van de specifieke uitzondering aangetroffen kon nemen.

Resources

  • Rymden: A (humoristische) Lijst van Gemeenschappelijke Uitzonderingen met uitleg
  • Zon: Trail op Remote Method Invocation
  • Mind Prod: Een lijst van de verschillende Java Uitzonderingen, velen met Details / Notes
632
0
3
Programmeren In Java