Summary: | Exceptions in Thru_POA Collocation strategy | ||
---|---|---|---|
Product: | TAO | Reporter: | Nanbor Wang <bala> |
Component: | ORB | Assignee: | Johnny Willemsen <jwillemsen> |
Status: | RESOLVED FIXED | ||
Severity: | normal | ||
Priority: | P3 | ||
Version: | 1.4.4 | ||
Hardware: | All | ||
OS: | All | ||
Bug Depends on: | 1852 | ||
Bug Blocks: |
Description
Nanbor Wang
2005-03-16 04:23:29 CST
Mine. I have just created a regression for this based on the new collocation test that QualComm provided. With Borland at least I don't see this problem, when a method has a raises A and B is thrown the caller nicely gets a unknown system exception. I will add the regression to the repo when the archive is unfrozen and we can see if this problem is maybe compiler/platform dependent Added a regression for this: * tests/Collocation_Exception_Test/*: New test for testing exceptions in collocated case Seems this are failing at least in emulated exception case. things seem to fail with msvc and emulated exceptions Assigning back to the pool, this seems to be a problem, the regression is in place but I don't have time right now to fix this. Bala, looking at bugzilla bug 1852 and the given link there, it looks like the use case that a servant raises a non specified exception is a programmer issue, not a TAO issue. If we remove the throw spec the unhandled exception handler we have in TAO will also not work anymore and then also in the remote case we get this behaviour. added depends on 1852. [OO] Can we get by with a pair of: catch (CORBA::Exception & ex) { ... } catch (...) { ... // convert to CORBA::UNKNOWN } catch blocks in the collocated case? We could refine the CORBA exception catch block to blocks for CORBA::SystemException and CORBA::UserException, and only perform the check against the exception specified in the IDL raises() clause for the UserException case since SystemExceptions are always allowed, right? mine fixed |