WWC snapshot of http://www.alw.nih.gov/Docs/NIHCL/nihcl_26.html taken on Sat Jun 10 19:13:49 1995

Go to the previous, next section.

nihclerrs.h--Error Codes and Messages

SYNOPSIS

#include <nihcl/nihclerrs.h>

BASE CLASS

None

DERIVED CLASSES

None

RELATED CLASSES

DESCRIPTION

Error codes and their associated error messages are defined in the file `nihclerrs.err'. The errgen utility reads this file and generates the file `nihclerrs.h', which defines a preprocessor symbol beginning with "NIHCL__" for each error code, and the file `nihclerrs.c', which defines a table containing the corresponding error messages.

While modules may use the NIHCL__ symbols as the first argument to NIHCL::setError(), doing so requires including `nihclerrs.h', which causes the module to be recompiled each time a new error code is added to the library. To eliminate this dependency, a corresponding external symbol beginning with "NIHCL_" is also defined for each error code, and it is these external symbols that modules typically use when calling NIHCL::setError().

Each error message begins with the error code enclosed in []s. The name of the corresponding preprocessor symbol for the error is obtained by prepending "NIHCL__", and the name of the corresponding external symbol for the error is obtained by prepending "NIHCL_". For example, the error message

[ALLOCFAIL] Not enough memory -- NEW failed

has the corresponding preprocessor symbol NIHCL__ALLOCFAIL and the external symbol
NIHCL_ALLOCFAIL.

An error message may also include variable fields, which are filled in from arguments passed to NIHCL::setError() at the error site.

The following section describes each NIH Class Library error message in detail.

ERROR MESSAGES

[ALLOCFAIL] Not enough memory -- NEW failed
A call to new failed to allocate the requested amount of memory.

[ALLOCSIZE] Negative or zero object allocation size requested: this->classname()
An attempt was made to allocate or resize the instance of class classname at address this with a negative or zero size.

[AMBIGCASTDN] Ambiguous downward cast: this->fromclass::_castdown(toclass)
An attempt was made to cast a pointer or reference to the instance of class fromclass at address this to a pointer or reference to class toclass, but the cast is ambiguous because there are multiple occurrences of class toclass among class fromclass's ancestors.

[ASTBLK] AST tried to block on semaphore: this->classname::fname()
The function classname::fname() was called to wait on the Semaphore at address this during the execution of an asynchronous system trap or signal handler.

[BADARGCL] Invalid argument class: expected fname(expect), was fname(got)
Function fname expected an argument of class expect, but was called with an argument of class got instead.

@item{ [BADARGCLM] Invalid argument class: expected classname::fname(expect),} @itemx{was classname::fname(got)} Member function classname::fname expected an argument of class expect, but was called with an argument of class got instead.

[BADARGSP] Invalid argument species: expected fname(expect), was fname(got)
Function fname expected an argument of species expect, but was called with an argument of species got instead.

@item{[BADARGSPM] Invalid argument species: expected classname::fname(expect),} @itemx{was classname::fname(got)} Member function classname::fname expected an argument of species expect, but was called with an argument of species got instead.

[BADCASTDN] Invalid downward cast: this->fromclass::_safe_castdown(toclass)
An attempt was made to cast a pointer or reference to the instance of class fromclass at address this to a pointer or reference to class toclass, but the cast is invalid because class toclass is not an ancestor of fromclass.

[BADCLASS] Invalid object class: expected expect, was got
An operation expected an instance of class expect, but failed because it received an instance of class got.

[BADDAY] Invalid day of week: weekdaynumber
Days of the week are numbered from 1 to 7, with Monday == 1 and Sunday == 7. The number weekdaynumber is outside this range.

[BADDAYNAM] Invalid day of week name: weekdayname
The name weekdayname is not a valid name for a day of the week. Week day names may be upper or lower case, and may be abbreviated to the first three characters.

[BADERRNUM] Invalid error code: fname(errorcode)
The function fname was called with the invalid error code number errorcode.

[BADMODAY] Invalid day of month: this->Date::Date(day,month,year)
An attempt was made to construct an instance of class Date at address this with an invalid day of the month; that is, day is not a valid day of the month month in the year year.

[BADMONAM] Invalid month name: monthname
The name monthname is not a valid name of a month. Month names may be upper or lower case, and may be abbreviated to the first three characters.

[BADMONTH] Invalid month: monthnumber
Months are numbered from 1 to 12, with January == 1 and December == 12. The number monthnumber is outside this range.

[BADPRI] Requested process priority (newpri) exceeds maximum (maxpri)
A request was made to set the priority of a process to newpri, which is greater than the maximum possible process priority of maxpri.

[BADRANGE] Invalid or undefined Range: this->classname::fname([first:len])
The member function classname::fname was applied to the object at address this with an instance of class Range that is invalid (len < 0) or out of bounds.

[BADREGEX] errmsg: this->Regex::Regex("regex")
An attempt was made to construct an instance of class Regex at address this, but the regular expression regex is illegal. The message errmsg explains why.

[BADSPEC] Invalid object species: expected expect, was got
An operation expected an instance with a species of expect, but failed because it received an instance with a species of got.

[BADSTMBR] this->classname::storeMemberOn() not called from Object::storeOn()
The function storeMemberOn() was applied to the instance of class classname at address this, but a storeOn() operation was not in progress.

[BADTIME] Invalid date/time: day-mon-yr hour:min:sec dst
The date and time shown in the message are invalid because Daylight Savings Time (DST) is observed locally, and the time shown is between 1:00 AM and 1:59 AM on the day when the transition from Standard Time to DST occurs, currently the last Sunday in April.

[BADTRACETBL] Invalid trace table at traceadr: this->classname::create()
During an attempt to create a process of class classname at address this, the create() function found a trace table with a bad code field, so it couldn't determine which register was being used as the frame pointer. This error only occurs on the IBM RT.

[CLTNEMPTY] Collection empty: this->classname::fname()
An attempt to apply the member function fname to the instance of the container class classname at address this failed, because the container is empty.

@item{[CPSEMWAIT] Attempt to copy semaphore with num waiting process(es):} @itemx{this->classname::deepCopy()} An attempt to deepCopy() the instance of class classname at address this failed because the instance is a Semaphore with num processes waiting on it. A Semaphore may only be copied if no processes are waiting on it.

[DATERANGE] Date day-mon-yr out of range for conversion to Time
The Date day-mon-yr could not be converted to an instance of class Time because it is before January 1, 1901 GMT or after December 31, 2036 GMT.

@item{[DBLLNK] Attempt to add linkclass to two listclasss:} @itemx{this->listclass::fname((linkclass*)linkadr)} An attempt was made to place the instance of class linkclass (a derived class of Link) at address linkadr on the instance of class listclass (a LinkedList or derived class) at address this with the function fname, but the instance of class linkclass is already on another LinkedList, as indicated by its non-zero next pointer.

[DELLNK] Attempt to delete classname with non-NULL next (=next): this->~Link()
An attempt was made to delete the instance of class classname (a derived class of Link) at address this, but it is still on a LinkedList, as indicated by its non-zero next pointer, which is pointing to next.

@item{[DLSEMWAIT] Attempt to delete semaphore with num waiting process(es):} @itemx{this->~classname()} An attempt was made to delete the instance of class classname (a Semaphore or derived class) at address this, but there are still num processes waiting on it.

[DRVDCLASSRSP] Unimplemented function this->classname::fname()
The function fname was applied to the instance of class classname at address this, but classname does not implement fname as expected.

[DUPKEY] Tried to add duplicate key: this->classname::fname((keyclass*)keyadr)
An attempt was made to add the instance of class keyclass at address keyadr to the instance of class classname (a Dictionary or derived class) at address this by applying the function fname, but a key object with an equal value is already in the Dictionary.

[FCTNOV] Fraction overflow: this->Fraction::Fraction(x)
The argument x is too large to represent as a Fraction.

[FCTNUN] Fraction underflow: this->Fraction::Fraction(x)
The argument x is too small to represent as a Fraction.

[ILLEGALMFCN] Illegal function this->classname::fname()
The virtual member function classname :: fname () was applied to the instance of classname at address this, but fname () is defined as shouldNotImplement().

[INDEXRANGE] Index out of range: this->classname::operator[]()
An attempt was made to index the instance of class classname at address this with an index beyond the bounds of the container.

[INVALIDPS] Invalid process procname state: this->classname.state=state
The instance of class classname at address this and name procname is in a state state other than SUSPENDED =0, RUNNING =1, or TERMINATED =2.

[KEYNOTFOUND] Key not found: this->classname::atKey((keyclass*)keyadr)
An attempt was made to find a key object equal to the instance of class keyclass at address keyadr by searching the instance of class classname (a Dictionary or derived class) at address this, but a key object with an equal value could not be found.

@item{[MISSINGLNK] afterclass not on list: this->classname::addAfter((afterclass*)afteradr,} @itemx{(linkclass*)linkadr)} The function addAfter() was applied to the instance of class classname (a LinkedList or derived class) at address this to add the instance of class linkclass (a derived class of Link) at address linkadr after the instance of class afterclass at address afteradr, but this instance is not on the LinkedList either because the afterclass has a zero next pointer, or because the LinkedList is empty.

[NYET] Sorry, classname::fname is not implemented yet
The member function classname::fname () has not been implemented yet.

[OBNOTFOUND] Object not found: this->classname::fname((obclass*)obadr)
The function fname was unsuccessfully applied to the instance of class classname at address this to locate an object equal to the instance of class obclass at address obadr.

[RDABSTCLASS] Tried to read object of abstract class classname
The function classname ::reader() was called to read an instance of an abstract class, which is illegal since an instance of an abstract class cannot be stored.

@item{[RDBADSIG] Incorrect class classname signature encountered on read:} @itemx{expected expect, was got} The version of class classname that is linked with the program has signature expect, but the program attempted to read an instance of class classname stored by an incompatible version of that class with signature got.

[RDBADTYP] Bad record type (code) read from file descriptor fdesc
An object I/O record type code other than storeOnClassRef =0, storeOnClass =1, or storeOnObjectRef =2 was read from the file descriptor fdesc.

[RDEOF] Premature EOF encountered on input stream
End-of-file was encountered before it was expected by an object I/O readFrom() operation.

[RDFAIL] Input stream read failed ... context ...
An error occurred while reading an input stream during an object I/O readFrom() operation. The string context shows the 30 characters following the point at which the read failed.

[RDSYNERR] Syntax error on input stream: expected expect, was got ...
A syntax error occurred on the input stream during an object I/O readFrom() operation. The string expect was expected, but the string got was actually read.

[RDUNKCLASS] Tried to read object of unknown class classname
The code for classname is not linked with the program.

[RDWRONGCLASS] Tried to read object of wrong class: expected expect, was got
The readFrom() function expected to read an instance of class expect, or a derived class of expect, but found an instance of class got instead.

[READBINERR] errmsg
An I/O error occurred during an object I/O readFrom() operation. The message errmsg explains why.

[READBINUNDFL] Underflow -- expect bytes expected - got bytes read
An object I/O readFrom() operation tried to read expect bytes, but got only got.

@item{[REMOVEERR] Tried to remove object not in collection:} @itemx{this->classname::remove((obclass*)obadr)} An attempt was made to remove the instance of class obclass at address obadr from the instance of the Collection class classname at address this, but the instance is not in this collection.

[RESRUN] Attempt to resume RUNNING process name (this)
An attempt was made to resume the process named name at address this, but this process is already running.

[RESTERM] Attempt to resume TERMINATED process name (this)
An attempt was made to resume the process named name at address this, but this process has already been terminated.

[SLICERANGE] Vector slice out of range: this->classname[length](pos,lgt,stride)
An attempt was made to construct a slice of the instance of the Vector class classname at address this, but the slice extends beyond the length length of the vector.

[STACKOV] Process name stack overflow
The stack size specified for process name, a derived class of StackProc, was not large enough to accommodate the maximum call nesting depth of the process.

@item{[STMBRREF] Attempt to store member variable object with reference} @itemx{@objnum:objnum->classname::storeOn()} An attempt was made to store the member variable object of class classname at address objadr, but this object has already been stored as object number objnum, so it cannot also be stored as a member of another object.

[STOREBINERR] errmsg
An I/O error occurred during an object I/O storeOn() operation. The message errmsg explains why.

@item{[STREFMBR] Attempt to store reference to member variable object:} @itemx{this->classname::storeOn()} An attempt was made to store the object of class classname at address this, but this object is a member variable of another object that has already been stored.

[STROV] String buffer overflowed during read of string str (n characters)
The string str could not be read during an object I/O readFrom() operation because its length (n) exceeds the length of the buffer supplied.

@item{[STSEMWAIT] Attempt to store semaphore with num waiting process(es):} @itemx{this->classname::storeOn()} An attempt was made to store the instance of class classname (a Semaphore or derived class) at address this, but there are num processes waiting on it.

@item{[SUBSTRERR] SubString position/length out of range:} @itemx{this->classname::operator()(pos,len)} An attempt was made to extract or replace a SubString that extends beyond the end of the instance of class classname (a String or derived class) at address this.

[SUSTERM] Attempt to suspend TERMINATED process name (this)
An attempt was made to suspend the process named name at address this, but this process has already been terminated.

[VECTOREMPTY] Illegal operation on zero-length classname: fname(this)
The operation fname was attempted on the instance of class classname (a derived class of Vector) at address this, but could not be performed because the vector was of length zero.

[VECTORLENGTH] Unequal lengths: uadr->uclass[ulen] and vadr->vclass[vlen]
A vector operation failed because the vector operands were of unequal lengths. The addresses, classnames, and lengths of the vector operands are shown in the error message.

@item{[VECTORSELECT] Unequal lengths: this->classname[veclen] and n ones in} @itemx{bitvecadr->BitVec[bitveclen]} The length of the instance of class classname (a derived class of Vector) at address this does not equal n, the number of ones in the BitVec of length bitveclen at address bitvecadr.

@item{[ZERODEN] Attempt to construct Fraction with zero denominator:} @itemx{this->Fraction::Fraction(num,den)} At attempt was made to construct an instance of class Fraction at address this with a numerator of num and a denominator of zero.

Go to the previous, next section.