diff options
Diffstat (limited to 'xpcom/base/nsIException.idl')
-rw-r--r-- | xpcom/base/nsIException.idl | 86 |
1 files changed, 86 insertions, 0 deletions
diff --git a/xpcom/base/nsIException.idl b/xpcom/base/nsIException.idl new file mode 100644 index 000000000..ff5a402ed --- /dev/null +++ b/xpcom/base/nsIException.idl @@ -0,0 +1,86 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +/* + * Interfaces for representing cross-language exceptions and stack traces. + */ + + +#include "nsISupports.idl" + +[scriptable, builtinclass, uuid(28bfb2a2-5ea6-4738-918b-049dc4d51f0b)] +interface nsIStackFrame : nsISupports +{ + // see nsIProgrammingLanguage for list of language consts + readonly attribute uint32_t language; + readonly attribute AUTF8String languageName; + [implicit_jscontext] + readonly attribute AString filename; + [implicit_jscontext] + readonly attribute AString name; + // Valid line numbers begin at '1'. '0' indicates unknown. + [implicit_jscontext] + readonly attribute int32_t lineNumber; + [implicit_jscontext] + readonly attribute int32_t columnNumber; + readonly attribute AUTF8String sourceLine; + [implicit_jscontext] + readonly attribute AString asyncCause; + [implicit_jscontext] + readonly attribute nsIStackFrame asyncCaller; + [implicit_jscontext] + readonly attribute nsIStackFrame caller; + + // Returns a formatted stack string that looks like the sort of + // string that would be returned by .stack on JS Error objects. + // Only works on JS-language stack frames. + [implicit_jscontext] + readonly attribute AString formattedStack; + + // Returns the underlying SavedFrame object for native JavaScript stacks, + // or null if this is not a native JavaScript stack frame. + readonly attribute jsval nativeSavedFrame; + + [implicit_jscontext] + AUTF8String toString(); +}; + +[scriptable, builtinclass, uuid(4371b5bf-6845-487f-8d9d-3f1e4a9badd2)] +interface nsIException : nsISupports +{ + // A custom message set by the thrower. + [binaryname(MessageMoz)] readonly attribute AUTF8String message; + // The nsresult associated with this exception. + readonly attribute nsresult result; + // The name of the error code (ie, a string repr of |result|) + readonly attribute AUTF8String name; + + // Filename location. This is the location that caused the + // error, which may or may not be a source file location. + // For example, standard language errors would generally have + // the same location as their top stack entry. File + // parsers may put the location of the file they were parsing, + // etc. + + // null indicates "no data" + [implicit_jscontext] + readonly attribute AString filename; + // Valid line numbers begin at '1'. '0' indicates unknown. + [implicit_jscontext] + readonly attribute uint32_t lineNumber; + // Valid column numbers begin at 0. + // We don't have an unambiguous indicator for unknown. + readonly attribute uint32_t columnNumber; + + // A stack trace, if available. + readonly attribute nsIStackFrame location; + + // Arbitary data for the implementation. + readonly attribute nsISupports data; + + // A generic formatter - make it suitable to print, etc. + [implicit_jscontext] + AUTF8String toString(); +}; |