Toon posts:

[CORBA] Exceptions in IDL

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb een interface in de module test met de methode doit. Deze throwed een exception "myexception". In mijn client en server (beiden java), zit myexception in de package com.myapp.exceptions. Hoe geef ik in IDL aan dat die exception daar te vinden is? Of hoe ga ik hiermee om?
Dit is mijn simpele voorbeeldje.

code:
1
2
3
4
5
module test {
    interface myint {
        long doit(in long myint) raises myexception
    };
};


Bedankt

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 25-05 20:56
Dat kan niet. Je kunt in CORBA IDL alleen exceptions raisen die ook in IDL gespecificeert zijn. Bovendien zijn CORBA exceptions altijd simpele structs en geen objecten. Je zult dus hoe dan ook myexception in IDL moeten specificeren en dan genereert de IDL compiler er al code voor.

Je bestaande myexception kun je dan ook niet gooien vanuit een methode als doit(). In C++ worden dit soort exceptions gemapped op een algemene UserException, waar je dan als ontvanger niet veel mee kunt, maar in Java kan dat alleen als het een RuntimeException was (andere exceptions moeten immers in de method signature gespecificeerd worden en die wordt al vastgelegd door de IDL compiler). Het is dus beter om in je doit()-implementatie de Java-exception op te vangen en in plaats daarvan een corresponderende CORBA-exception te raisen.

[ Voor 20% gewijzigd door Soultaker op 18-05-2004 22:08 ]


Verwijderd

Topicstarter
Ah op die manier.
Dank je wel voor het antwoord.