OfficeExtension.Error class

The error object returned by context.sync(), if a promise is rejected due to an error while processing the request.

Properties

code

Error code string, such as "InvalidArgument".

debugInfo

Debug info (useful for detailed logging of the error, i.e., via JSON.stringify(...)).

innerError

Inner error, if applicable.

message

The error message passed through from the Office application.

name

Error name: "OfficeExtension.Error".

stack

Stack trace, if applicable.

traceMessages

Trace messages (if any) that were added via a context.trace() invocation before calling context.sync(). If there was an error, this contains all trace messages that were executed before the error occurred. These messages can help you monitor the program execution sequence and detect the case of the error.

Property Details

code

Error code string, such as "InvalidArgument".

code: string;

Property Value

string

debugInfo

Debug info (useful for detailed logging of the error, i.e., via JSON.stringify(...)).

debugInfo: DebugInfo;

Property Value

innerError

Inner error, if applicable.

innerError: Error;

Property Value

message

The error message passed through from the Office application.

message: string;

Property Value

string

name

Error name: "OfficeExtension.Error".

name: string;

Property Value

string

stack

Stack trace, if applicable.

stack: string;

Property Value

string

traceMessages

Trace messages (if any) that were added via a context.trace() invocation before calling context.sync(). If there was an error, this contains all trace messages that were executed before the error occurred. These messages can help you monitor the program execution sequence and detect the case of the error.

traceMessages: string[];

Property Value

string[]

Examples

// The following example shows how you can instrument a batch of commands
// to determine where an error occurred. The first batch successfully
// inserts the first two paragraphs into the document and cause no errors.
// The second batch successfully inserts the third and fourth paragraphs
// but fails in the call to insert the fifth paragraph. All other commands
// after the failed command in the batch are not executed, including the
// command that adds the fifth trace message. In this case, the error
// occurred after the fourth paragraph was inserted, and before adding the
// fifth trace message.

// Run a batch operation against the Word object model.
await Word.run(async (context) => {

    // Create a proxy object for the document body.
    const body = context.document.body;

    // Queue a command to insert the paragraph at the end of the document body.
    // Start a batch of commands.
    body.insertParagraph('1st paragraph', Word.InsertLocation.end);
    // Queue a command for instrumenting this part of the batch.
    context.trace('1st paragraph successful');

    body.insertParagraph('2nd paragraph', Word.InsertLocation.end);
    context.trace('2nd paragraph successful');

    // Synchronize the document state by executing the queued-up commands,
    // and return a promise to indicate task completion.
    await context.sync();

    // Queue a command to insert the paragraph at the end of the document body.
    // Start a new batch of commands.
    body.insertParagraph('3rd paragraph', Word.InsertLocation.end);
    context.trace('3rd paragraph successful');

    body.insertParagraph('4th paragraph', Word.InsertLocation.end);
    context.trace('4th paragraph successful');

    // This command will cause an error. The trace messages in the queue up to
    // this point will be available via Error.traceMessages.
    body.insertParagraph(0, '5th paragraph', Word.InsertLocation.end);
    // Queue a command for instrumenting this part of the batch.
    // This trace message will not be set on Error.traceMessages.
    context.trace('5th paragraph successful');
    await context.sync();
}).catch(function (error) {
    if (error instanceof OfficeExtension.Error) {
        console.log('Trace messages: ' + error.traceMessages);
    }
});

// Output: "Trace messages: 3rd paragraph successful,4th paragraph successful"