Fehlerbehandlung mit den anwendungsspezifischen JavaScript-APIs
Wenn Sie ein Add-In mit den anwendungsspezifischen Office JavaScript-APIs erstellen, müssen Sie fehlerbehandlungslogik einschließen, um Laufzeitfehler zu berücksichtigen. Dies ist aufgrund der asynchronen Natur der APIs von entscheidender Bedeutung.
Bewährte Methoden
In unseren Codebeispielen und Skript-Lab-Codeausschnitten werden Sie feststellen, dass jeder Aufruf von Excel.run
, PowerPoint.run
oder Word.run
von einer catch
-Anweisung zum Abfangen von Fehlern begleitet wird. Es wird empfohlen, dasselbe Muster zu verwenden, wenn Sie ein Add-In mithilfe der anwendungsspezifischen APIs erstellen.
$("#run").on("click", () => tryCatch(run));
async function run() {
await Excel.run(async (context) => {
// Add your Excel JavaScript API calls here.
// Await the completion of context.sync() before continuing.
await context.sync();
console.log("Finished!");
});
}
/** Default helper for invoking an action and handling errors. */
async function tryCatch(callback) {
try {
await callback();
} catch (error) {
// Note: In a production add-in, you'd want to notify the user through your add-in's UI.
console.error(error);
}
}
API-Fehler
Wenn eine Office JavaScript-API-Anforderung nicht erfolgreich ausgeführt wird, gibt die API ein Fehlerobjekt zurück, das die folgenden Eigenschaften enthält.
Code: Die
code
-Eigenschaft einer Fehlermeldung enthält eine Zeichenfolge, die Teil vonOfficeExtension.ErrorCodes
oder{application}.ErrorCodes
ist, wobei {application} Excel, PowerPoint oder Word darstellt. Der Fehlercode "InvalidReference" gibt z. B. an, dass der Verweis für den angegebenen Vorgang ungültig ist. Die Fehlercodes sind nicht lokalisiert.message: Die
message
-Eigenschaft einer Fehlermeldung enthält eine Zusammenfassung des Fehlers in der lokalisierten Zeichenfolge. Die Fehlermeldung ist nicht für die Nutzung durch Endbenutzer vorgesehen. Sie sollten den Fehlercode und die entsprechende Geschäftslogik verwenden, um die Fehlermeldung zu ermitteln, die Ihr Add-In den Endbenutzern anzeigt.debugInfo: Sofern vorhanden, bietet die
debugInfo
-Eigenschaft der Fehlermeldung zusätzliche Informationen, die Sie verwenden können, um die Ursache des Fehlers zu verstehen.
Hinweis
Wenn Sie zum Ausgeben von Fehlermeldungen in der Konsole verwenden console.log()
, sind diese Meldungen nur auf dem Server sichtbar. Endbenutzern werden diese Fehlermeldungen nicht im Add-In-Aufgabenbereich oder an einer beliebigen Stelle in der Office-Anwendung angezeigt. Informationen zum Melden von Fehlern an den Benutzer finden Sie unter Fehlerbenachrichtigungen.
Fehlercodes und -meldungen
In den folgenden Tabellen sind die Fehler aufgeführt, die anwendungsspezifische APIs möglicherweise zurückgeben.
Hinweis
In den folgenden Tabellen sind Fehlermeldungen aufgeführt, die bei der Verwendung der anwendungsspezifischen APIs auftreten können. Wenn Sie mit der allgemeinen API arbeiten, finden Sie informationen zu relevanten Fehlermeldungen unter Allgemeine Office-API-Fehlercodes .
Fehlercode | Fehlermeldung | Hinweise |
---|---|---|
AccessDenied |
Sie können den angeforderten Vorgang nicht durchzuführen. | Keine |
ActivityLimitReached |
Der Aktivitätsgrenzwert wurde erreicht. | Keine |
ApiNotAvailable |
Die angeforderte API ist nicht verfügbar. | Keine |
ApiNotFound |
Die API, die Sie verwenden möchten, wurde nicht gefunden. Es kann in einer neueren Version der Office-Anwendung verfügbar sein. Weitere Informationen finden Sie unter Office-Clientanwendung und Plattformverfügbarkeit für Office-Add-Ins . | Keine |
BadPassword |
Das von Ihnen angegebene Kennwort ist falsch. | Keine |
Conflict |
Anforderung konnte aufgrund eines Konflikts nicht verarbeitet werden. | Keine |
ContentLengthRequired |
Ein Content-length HTTP-Header fehlt. |
Keine |
GeneralException |
Beim Verarbeiten der Anforderung ist ein interner Fehler aufgetreten. | Keine |
HostRestartNeeded |
Die Office-Anwendung muss neu gestartet werden. | Dieser Fehler wird von der Office.ribbon.requestUpdate() -Methode ausgelöst, wenn das Add-In, das die Methode aufruft, seit dem Start der Office-Anwendung aktualisiert wurde. |
InsertDeleteConflict |
Der Einfüge- oder Löschvorgang führte zu einem Konflikt. | Keine |
InvalidArgument |
Das Argument ist ungültig oder fehlt oder weist ein falsches Format auf. | Keine |
InvalidBinding |
Die Objektbindung ist aufgrund von früheren Updates nicht mehr gültig. | Keine |
InvalidOperation |
Dieser Vorgang ist für das Objekt ungültig. | Keine |
InvalidReference |
Dieser Verweis ist für den aktuellen Vorgang nicht gültig. | Keine |
InvalidRequest |
Die Anforderung kann nicht verarbeitet werden. | Keine |
InvalidRibbonDefinition |
Office hat eine ungültige Menübanddefinition erhalten. | Dieser Fehler wird ausgelöst, wenn ein ungültiges RibbonUpdateObject an die Office.ribbon.requestUpdate() -Methode übergeben wird. |
InvalidSelection |
Die aktuelle Auswahl ist für diesen Vorgang nicht gültig. | Keine |
ItemAlreadyExists |
Die erstellte Ressource ist bereits vorhanden. | Keine |
ItemNotFound |
Die angeforderte Ressource ist nicht vorhanden. | Keine |
MemoryLimitReached |
Das Arbeitsspeicherlimit wurde erreicht. Ihre Aktion konnte nicht abgeschlossen werden. | Keine |
NotImplemented |
Das angeforderte Feature ist nicht implementiert. | Dies kann bedeuten, dass sich die API in der Vorschau befindet oder nur auf einer bestimmten Plattform (z. B. nur online) unterstützt wird. Weitere Informationen finden Sie unter Office-Clientanwendung und Plattformverfügbarkeit für Office-Add-Ins . |
RequestAborted |
Die Anforderung wurde während der Laufzeit abgebrochen. | Keine |
RequestPayloadSizeLimitExceeded |
Die Größe der Anforderungsnutzlast hat den Grenzwert überschritten. Weitere Informationen finden Sie im Artikel Ressourcenlimits und Leistungsoptimierung für Office-Add-Ins . | Dieser Fehler tritt nur in Office im Web auf. |
ResponsePayloadSizeLimitExceeded |
Die Größe der Antwortnutzlast hat den Grenzwert überschritten. Weitere Informationen finden Sie im Artikel Ressourcenlimits und Leistungsoptimierung für Office-Add-Ins . | Dieser Fehler tritt nur in Office im Web auf. |
ServiceNotAvailable |
Der Dienst ist nicht verfügbar. | Keine |
Unauthenticated |
Erforderliche Authentifizierungsinformationen fehlen oder sind ungültig. | Keine |
UnsupportedFeature |
Fehler beim Vorgang, da das Quellarbeitsblatt mindestens ein nicht unterstütztes Feature enthält. | Keine |
UnsupportedOperation |
Dieser Vorgang wird nicht unterstützt. | Keine |
Excel-spezifische Fehlercodes und -meldungen
Fehlercode | Fehlermeldung | Hinweise |
---|---|---|
EmptyChartSeries |
Bei dem versuchten Vorgang ist ein Fehler aufgetreten, da die Diagrammreihe leer ist. | Keine |
FilteredRangeConflict |
Der versuchte Vorgang verursacht einen Konflikt mit einem gefilterten Bereich. | Keine |
FormulaLengthExceedsLimit |
Der Bytecode der angewendeten Formel überschreitet die maximale Längengrenze. Für Office auf 32-Bit-Computern beträgt die Bytecodelängenbeschränkung 16384 Zeichen. Auf 64-Bit-Computern beträgt die Bytecodelängenbeschränkung 32768 Zeichen. | Dieser Fehler tritt sowohl in Excel im Web als auch auf dem Desktop auf. |
GeneralException |
Verschieden. | Die Datentyp-APIs geben Fehler mit dynamischen Fehlermeldungen zurück GeneralException . Diese Meldungen verweisen auf die Zelle, die die Fehlerquelle ist, und auf das Problem, das den Fehler verursacht, z. B.: "Zelle A1 fehlt die erforderliche Eigenschaft type ." |
InactiveWorkbook |
Der Vorgang ist fehlgeschlagen, weil mehrere Arbeitsmappen geöffnet sind und die von dieser API aufgerufene Arbeitsmappe den Fokus verloren hat. | Keine |
InvalidOperationInCellEditMode |
Der Vorgang ist nicht verfügbar, während Excel sich im Zellenbearbeitungsmodus befindet. Beenden Sie den Bearbeitungsmodus, indem Sie die EINGABETASTE oder TAB-TASTE verwenden oder eine andere Zelle auswählen, und versuchen Sie es dann erneut. | Keine |
MergedRangeConflict |
Der Vorgang kann nicht abgeschlossen werden. Eine Tabelle darf sich nicht mit einer anderen Tabelle, einem PivotTable-Bericht, Abfrageergebnissen, zusammengeführten Zellen oder einer XML-Zuordnung überschneiden. | Keine |
NonBlankCellOffSheet |
Microsoft Excel kann keine neuen Zellen einfügen, da es nicht leere Zellen vom Ende des Arbeitsblatts verschiebt. Diese nicht leeren Zellen werden möglicherweise leer angezeigt, weisen jedoch leere Werte, eine formatierung oder eine Formel auf. Löschen Sie genügend Zeilen oder Spalten, um Platz für das zu schaffen, was Sie einfügen möchten, und versuchen Sie es dann erneut. | Keine |
OperationCellsExceedLimit |
Der versuchte Vorgang betrifft mehr als den Grenzwert von 33554000 Zellen. | Wenn dieser TableColumnCollection.add API Fehler ausgelöst wird, vergewissern Sie sich, dass keine unbeabsichtigten Daten innerhalb des Arbeitsblatts, aber außerhalb der Tabelle vorhanden sind. Überprüfen Sie insbesondere, ob Daten in den Spalten ganz rechts des Arbeitsblatts enthalten sind. Entfernen Sie die unbeabsichtigten Daten, um diesen Fehler zu beheben. Eine Möglichkeit zum Überprüfen der Anzahl von Zellen, die ein Vorgang verarbeitet, besteht darin, die folgende Berechnung auszuführen: (number of table rows) x (16383 - (number of table columns)) . Die Zahl 16383 ist die maximale Anzahl von Spalten, die Excel unterstützt. Dieser Fehler tritt nur in Excel im Web auf. |
PivotTableRangeConflict |
Der versuchte Vorgang verursacht einen Konflikt mit einem PivotTable-Bereich. | Keine |
RangeExceedsLimit |
Die Zellanzahl im Bereich hat die maximal unterstützte Anzahl überschritten. Weitere Informationen finden Sie im Artikel Ressourcenlimits und Leistungsoptimierung für Office-Add-Ins . | Keine |
RefreshWorkbookLinksBlocked |
Fehler beim Vorgang, weil der Benutzer keine Berechtigung zum Aktualisieren externer Arbeitsmappenlinks erteilt hat. | Keine |
UnsupportedSheet |
Dieser Blatttyp unterstützt diesen Vorgang nicht, da es sich um ein Makro- oder Diagrammblatt handelt. | Keine |
Word-spezifische Fehlercodes und -meldungen
Fehlercode | Fehlermeldung | Hinweise |
---|---|---|
SearchDialogIsOpen |
Das Suchdialogfeld ist geöffnet. | Keine |
SearchStringInvalidOrTooLong |
Die Suchzeichenfolge ist ungültig oder zu lang. | Die maximale Suchzeichenfolge beträgt 255 Zeichen. |
Fehlerbenachrichtigungen
Wie Sie Fehler an Benutzer melden, hängt vom verwendeten Benutzeroberflächensystem ab.
Wenn Sie React als Benutzeroberflächensystem verwenden, verwenden Sie die Fluent-UI-Komponenten und -Designelemente. Es wird empfohlen, Fehlermeldungen mit einer Dialogkomponente zu übermitteln. Wenn der Fehler in der Eingabe des Benutzers auftritt, konfigurieren Sie die Eingabekomponente so, dass der Fehler als fett roter Text angezeigt wird.
Hinweis
Die Warnungskomponente kann auch verwendet werden, um Benutzern Fehler zu melden, befindet sich jedoch derzeit in der Vorschau und sollte nicht in einem Produktions-Add-In verwendet werden. Informationen zum Veröffentlichungsstatus finden Sie in der Roadmap der Fluent UI React v9-Komponenten.
Wenn Sie React nicht für die Benutzeroberfläche verwenden, sollten Sie die älteren Fabric-UI-Komponenten verwenden, die direkt in HTML und JavaScript implementiert sind. Einige Beispielvorlagen befinden sich im Office-Add-in-UX-Design-Patterns-Code-Repository . Sehen Sie sich insbesondere die Unterordner Dialog und Navigation an. Das Excel-Add-in-SalesLeads-Beispiel verwendet ein Nachrichtenbanner.
Siehe auch
Office Add-ins