The exception hierarchies for the Tools.h++ Professional C++ and Java exceptions are shown below.
None
RWxmsg //Tools.h++ RWExternalErr //Tools.h++ RWInetHostNotFound RWInetServiceNotFound RWNetCantCreatePortal RWNetCantRecv RWNetCantSend RWNetNoFactoryRegistered RWNetNoNameFactoryRegistered RWNetNoNumberFactoryRegistered RWNetSelectException RWNetWinsockInitErr RWSockBadAddressFormat RWInternalErr //Tools.h++ RWIProtocolAgentErr RWIProtocolClientErr RWIProtocolClientCmdSequenceErr RWIReplyErr RWIReplySyntaxErr RWNetAlreadyRegistered RWNetInvalidSocket RWNetNoChannel RWNetNoSuchBlockingHook RWSockErr RWSockTypeChange RWSockWrongAddressType RWURLErr RWJException RWJRemoteException
IOException //built-in InputRangeException OutputRangeException RuntimeException //built-in BadRegularExpressionException EmptyQueueException IndexOutOfBoundsException //built-in DlistIndexOutOfBoundsException SlistIndexOutOfBoundsException
java.lang.Throwable //built-in java.lang.Exception //built-in SerializeException RemoteError
RWInetHostNotFound: no internet port with given service name
External error. An attempt was made to determine the name(s) or address(s) of a non-existent or unreachable internet host.
RWInetServiceNotFound: no internet port with given service name
External error. Services that may be defined on one machine may not necessarily be defined on another. The only way to make sure is to use a port number instead of a string.
RWIProtocolAgentErr: a protocol error occurred with one of the agent classes
Internal error. Some part of the particular protocol was violated, such as passing an empty string, or sending an illegal command.
RWIProtocolClientCmdSequenceErr: the protocol command was sent out of sequence
Internal error. Derived from RWIProtocolClientErr.
RWIProtocolClientErr: the protocol command failed
Internal error. The server was unable to handle the command. Used when the command was appropriate but the response was negative, such as providing an incorrect password.
RWIReplyErr: the RWIReply is not ready to handle the method you called
Internal error. You have called a method on an RWIReply class which is empty, or the method attempts to change an RWIReply in an incorrect manner.
RWIReplySyntaxErr: the server has sent a reply which is not appropriate to the current state of the interaction
Internal error. The server has responded with unexpected data. Either the format is incorrect, or an unexpected response has been received.
RWNetAlreadyRegistered: another address factory already registered
Internal error. You have attempted to register two different address factories with a general address factory for the same family key.
RWNetCant[Send,Recv]: can't send/receive data from channel
External error. No data can be sent/received from the communications channel. One possibility is that the channel is non-blocking and you attempted to do a guaranteedSend()/guaranteedRecv() on a portal.
RWNetInvalidSocket: tried to use an invalid socket
Internal error. This error is thrown when you try to use a socket that is not valid. RWSockets are invalid until they are initialized.
RWNetNoChannel: there is no underlying communications channel
Internal error. This exception is thrown when you attempt to access communications via a portal with no underlying communications channel present. This happens when you build a portal with the default constructor and then don't assign anything to it.
RWNetNoFactoryRegistered: no factory has been registered for this family
External error. You are attempting to build a socket address for a family for which no socket address factory has been registered. The derived classes RWNetNoNumberFactoryRegistered and RWNetNoNameFactoryRegistered handle the cases of families identified via number or name, respectively.
RWNetNoSuchBlockingHook: specified an invalid blocking hook ID
Internal error. You specified an ID of a blocking hook that does not exist.
RWNetSelectException: select returned an exceptional condition
External error. For some reason, select() returned a negative one. Keep track of the actual error number.
RWNetWinsockInitErr: problem initializing the Winsock DLL
External error. The Winsock DLL couldn't be initialized by the application. This could be due to the DLL not supporting the correct version of Winsock, for example. This exception is also thrown if there are problems shutting down the Winsock DLL after we are finished with it. This should be a rare condition.
RWSockBadAddressFormat: tried to input an address I cannot understand
External error. The input string cannot be parsed as an address. This is thrown from one of the constructors that converts a string to an address, or to an address component (like a host name).
RWSockErr: error thrown by the socket wrapper
Internal error. This exception is thrown by the socket wrapper layer in response to a socket problem. The error code it carries indicates which error it was.
Note that some RWSockErr error codes do not have string equivalents. The why() member function for these codes will print out a number to represent the specific error, rather than a string. For the most part, this applies to Winsock error codes that are not present in BSD sockets. The error code strings can be found in the system's winsock.h header file.
RWSockTypeChange: tried to bind/connect with address of wrong family
Internal error. You tried to change the type of an RWSocket using bind() or connect(), by first setting up the state of a socket (using socket(), probably) and then by calling a function that takes an address.
RWSockWrongAddressType: tried to convert to wrong address type
Internal error. You attempted to do a narrowing conversion to a class that is not a type of the object.
©Copyright 2000, Rogue Wave Software, Inc.
Contact Rogue Wave about documentation or support issues.