summaryrefslogtreecommitdiff
path: root/xpcom/base/nsIException.idl
diff options
context:
space:
mode:
Diffstat (limited to 'xpcom/base/nsIException.idl')
-rw-r--r--xpcom/base/nsIException.idl86
1 files changed, 86 insertions, 0 deletions
diff --git a/xpcom/base/nsIException.idl b/xpcom/base/nsIException.idl
new file mode 100644
index 0000000000..ff5a402ed7
--- /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();
+};