//
// Copyright (c) 2006, Brian Frank and Andy Frank
// Licensed under the Academic Free License version 3.0
//
// History:
// 11 Jan 06 Brian Frank Creation
//
**
** Err is the base class of all exceptions.
**
const class Err
{
//////////////////////////////////////////////////////////////////////////
// Constructor
//////////////////////////////////////////////////////////////////////////
**
** Construct with specified error message and optional root cause.
**
new make(Str msg := "", Err? cause := null)
//////////////////////////////////////////////////////////////////////////
// Methods
//////////////////////////////////////////////////////////////////////////
**
** Get the string message passed to the contructor or empty
** string if a message is not available.
**
Str msg()
**
** Get the underyling cause exception or null.
**
Err? cause()
**
** Dump the stack trace of this exception to the specified
** output stream (or 'Env.cur.err' by default). Return this.
**
** The options may be used to specify the format of the output:
** - "indent": Int for initial number of indentation spaces
** - "maxDepth": Int specifies how many methods in each
** exception of chain to include. If unspecified the
** default is configured from the "errTraceMaxDepth" prop
** in etc/sys/config.props.
**
This trace(OutStream out := Env.cur.err, [Str:Obj]? options := null)
**
** Dump the stack trace of this exception to a Str.
**
Str traceToStr()
**
** Return the qualified type name and optional message.
**
override Str toStr()
}