gecko-dev/xpcom/base/nsIExceptionService.idl

43 строки
1.7 KiB
Plaintext

/* -*- 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/. */
#include "nsISupports.idl"
#include "nsIException.idl"
// A ScriptErrorManager for a single thread. These objects
// are _not_ thread-safe. Use the ScriptErrorService
// to get a script error manager for your current thread.
[scriptable, uuid(efc9d00b-231c-4feb-852c-ac017266a415)]
interface nsIExceptionManager : nsISupports
{
/** Sets (or clears with nullptr) the current error on the this thread. */
void setCurrentException( in nsIException error);
/** Gets the current error for the current thread, or NULL if no error */
nsIException getCurrentException();
/** Gets an exception from a registered exception provider..
This has no effect on the "current exception" */
nsIException getExceptionFromProvider( in nsresult rc, in nsIException defaultException);
};
// The Exception Service. Allows you to get an set exceptions in a thread
// safe manner, or to get an ExceptionManager for your specific thread.
[scriptable, uuid(8f9ccabb-a68b-43e3-b570-dd8c3179d2fb)]
interface nsIExceptionService : nsIExceptionManager
{
/** Obtains an exception manager for the current thread. */
readonly attribute nsIExceptionManager currentExceptionManager;
};
%{ C++
// {35A88F54-F267-4414-92A7-191F6454AB52}
#define NS_EXCEPTIONSERVICE_CID \
{ 0x35a88f54, 0xf267, 0x4414, { 0x92, 0xa7, 0x19, 0x1f, 0x64, 0x54, 0xab, 0x52 } }
#define NS_EXCEPTIONSERVICE_CONTRACTID "@mozilla.org/exceptionservice;1"
%}