Quine.HRCatalog Namespace

Contains types that assist in defining "message catalogs", where each message has a unique error code formatted as HRESULT.

Classes

QHBugs Error codes thrown when an unrecoverable condition has been detected. These should be used in combination with StunException. Messages are roughly partitioned by subsystem (assembly); one subsystem will rarely need multiple "bug" messages. A new message should be defined only when automated processing must distinguish it from others.
QHEnsure Utility methods for simplified checking of invariants. This should be used only to report program bugs, not user-correctable errors!
QHException Default exception type that should be thrown when a message is available in HRCatalog.
QHExternalProgramComponent 
QHFacilities 
QHGraph 
QHNotificationEvent Notification event to be presented to the user.
QHNucleus 
QHNucleusFilesystem 
QHSchemas Exceptions thrown directly from Quine.Schemas.* assemblies. Facility 1.
QHSchemasCore Exceptions thrown from Quine.Schemas.Core.
StunException

Thrown when a program gets "stunned" on a bug, with no means to recover. This covers all errors detected at run-time, both usage errors and conditions that cannot be handled. The class is sealed and cannot be customized. When customization is needed, a new exception type and error code should be defined in a facility other than QHBugs.

USAGE GUIDELINE: this exception propagating to the end-user should be considered a program bug.

The exception derives from NotImplementedException since the condition is detected, but it is not anticipated that it can be handled in any sane way.

Structures

QHMessage Combines a hresult code with a string format message. Used to build the message catalog which in turn will make it possible to look up help text.
QHResult Builds a HRESULT value that is encoded as customer-defined. The value may be extracted only by implicit conversion to int. Also overrides ToString to display a hex-formatted error code with prepended severity letter.

Interfaces

IQHException Marker interface for exceptions that can be classified through HRCatalog. The implementing exception MUST set HResult property and it SHOULD override Message property. Only classes deriving from Exception can implement this interface, otherwise InvalidCastException will be thrown when methods are attempted to be used.