Fehlerbehandlung für Excel-APIs
Dieser Artikel enthält allgemeine Anweisungen und Vorschläge zur Behandlung von Fehlern, die von den Excel-APIs in Microsoft Graph zurückgegeben werden, wenn eine über die API gesendete Anforderung fehlschlägt.
Arten von Fehlerantworten
Excel-APIs in Microsoft Graph geben zwei Arten von Fehlern zurück. Eine ist die reguläre Fehlerantwort, die wie folgt aussieht.
HTTP/1.1 <HTTP status code>
Content-type: application/json
Retry-After: <Cooldown duration in seconds> (optional)
{
"error": <Error object>
}
Die zweite stammt aus dem Muster mit zeitintensiven Vorgängen, das einen 200 OK
HTTP-status-Code und failed
-Vorgang zurückgeben kann, status im Antworttext, wie im folgenden Beispiel gezeigt.
HTTP/1.1 200 OK
Content-type: application/json
{
"status": "failed",
"error": <Error object>
}
Für beide Fehlerantworten weist das Fehlerobjekt die folgende Struktur auf.
Hinweis
Fehlerantworten entsprechen der Definition der OData v4-Spezifikation für Fehlerantworten.
{
"code": "string",
"message": "string",
"innerError": { "@odata.type": "odata.error" }
}
Das innerError-Objekt kann rekursiv weitere innerError-Objekte mit zusätzlichen, spezifischeren Fehlercodes enthalten. Das Error-Objekt kann z. B. ausführlichere Fehlerinformationen im Fehlercode und der Meldung der zweiten Ebene enthalten, wie gezeigt.
{
"code": "Top-level error code",
"message": "Top-level error message",
"innerError": {
"code": "Second-level error code",
"message": "Second-level error message",
"innerError": { "@odata.type": "odata.error" }
}
}
Schritte zum Behandeln von Fehlerantworten
Microsoft Graph-Clients müssen die folgenden Schritte ausführen, um Fehler zu behandeln, die mit Excel-APIs auftreten.
1. Ermitteln Sie, ob es sich um einen Zeitdauer-Vorgangsfehler handelt.
Vor der Behandlung eines Fehlers besteht der erste Schritt darin, zu bestimmen, ob die Fehlerantwort von einem Zeitintensiven Vorgangsmuster oder einem regulären Muster stammt. Ein Zeitintensiver Vorgangsfehler gibt einen 200 OK
HTTP-status Code und failed
einen Vorgang zurück, der im Antworttext status. Eine reguläre Fehlerantwort gibt einen entsprechenden HTTP-Fehler status Code zurück.
2. Analysieren des Fehlercodes der zweiten Ebene
Sowohl für das muster mit langer Ausführungsdauer als auch für das reguläre Muster sollte der Client zunächst die erforderlichen Fehlercodes der zweiten Ebene analysieren und sie gemäß den Anweisungen behandeln. Optional kann der Client auch andere Fehlercodes der zweiten Ebene verarbeiten oder auf Fehlercodes der obersten Ebene oder status Codes zurückgreifen.
Bei den Fehlercodes wird die Groß-/Kleinschreibung nicht beachtet.
Erforderliche Fehlercodes der zweiten Ebene
Die folgende Tabelle enthält Anweisungen für erforderliche Fehlercodes der zweiten Ebene, die von Microsoft Graph-Clients behandelt werden sollen. Der Dienst kann jederzeit neue Fehlercodes hinzufügen.
Code | Anweisungen |
---|---|
accessConflict |
Die fehlgeschlagene Anforderung hat einen Konflikt mit anderen Clients, die auf die Arbeitsmappe zugreifen (z. B. hat ein anderer Client die Arbeitsmappe zur Bearbeitung gesperrt). Es wird nicht erwartet, dass der Microsoft Graph-Client die fehlgeschlagene Anforderung erneut sendet, bis der Konflikt behoben ist. Ein Endbenutzer kann die gleichen Vorgänge mit Excel Online manuell ausführen, um weitere Details zum Konflikt zu erhalten. |
badRequestUncategorized |
In der fehlerhaften Anforderung wird ein nicht angegebener Fehler gefunden. Es wird nicht erwartet, dass der Microsoft Graph-Client die fehlgeschlagene Anforderung erneut sendet. |
conflictUncategorized |
Die fehlgeschlagene Anforderung verursacht einen Konflikt mit einem bestimmten Serverzustand. Es wird nicht erwartet, dass der Microsoft Graph-Client die fehlgeschlagene Anforderung erneut sendet, bis der Konflikt behoben ist. Ein Endbenutzer kann die gleichen Vorgänge mit Excel Online manuell ausführen, um weitere Details zum Konflikt zu erhalten. |
forbiddenUncategorized |
Die fehlgeschlagene Anforderung ist nicht zulässig. Es wird nicht erwartet, dass der Microsoft Graph-Client die fehlgeschlagene Anforderung erneut sendet. Ein Endbenutzer kann die gleichen Vorgänge mit Excel Online manuell ausführen, um weitere Details zu den Einschränkungen zu erhalten. |
gatewayTimeoutUncategorized |
Der Dienst konnte die Anforderung nicht innerhalb des Zeitlimits abschließen. |
internalServerErrorUncategorized |
Ein nicht angegebener Fehler ist aufgetreten. Es wird nicht erwartet, dass der Microsoft Graph-Client die fehlgeschlagene Anforderung erneut sendet. Wenn in der fehlgeschlagenen Anforderung eine Sitzung angegeben wird, wird auch kein weiterer Zugriff auf die Sitzung erwartet. |
invalidSessionAccessConflict |
Die in der Anforderung angegebene Sitzung ist aufgrund von Konflikten mit anderen Clients ungültig, die auf die Arbeitsmappe zugreifen (z. B. hat ein anderer Client die Arbeitsmappe zur Bearbeitung gesperrt). Ein weiterer Zugriff auf die in der fehlgeschlagenen Anforderung angegebene Sitzung wird nicht erwartet. Das erneute Erstellen von Sitzungen mit derselben createSession-Anforderung wird erst erwartet, wenn der Konflikt gelöst ist. Das erneute Erstellen von Sitzungen mit einer anderen createSession-Anforderung kann oder nicht erfolgreich sein. Ein Endbenutzer kann die gleichen Vorgänge mit Excel Online manuell ausführen, um weitere Details zum Konflikt zu erhalten. |
invalidSessionAuthentication |
Die in der Anforderung angegebene Sitzung ist aufgrund eines Authentifizierungsfehlers ungültig. Ein weiterer Zugriff auf die in der fehlgeschlagenen Anforderung angegebene Sitzung wird nicht erwartet. Das erneute Erstellen von Sitzungen mit derselben createSession-Anforderung wird erst erwartet, wenn entsprechende Authentifizierungsinformationen bereitgestellt wurden. |
invalidSessionNotFound |
Die in der Anforderung angegebene Sitzung ist ungültig, da die Arbeitsmappe nicht gefunden werden kann. Ein weiterer Zugriff auf die in der fehlgeschlagenen Anforderung angegebene Sitzung wird nicht erwartet. Das Erneute Erstellen von Sitzungen mit derselben createSession-Anforderung ist nicht zu erwarten. |
invalidSessionReCreatable |
Die in der Anforderung angegebene Sitzung ist nicht vorhanden oder aufgrund eines vorübergehenden Fehlers ungültig. Der Microsoft Graph-Client kann versuchen, eine Sitzung neu zu erstellen und die Arbeit fortzusetzen. Ein weiterer Zugriff auf die in der fehlgeschlagenen Anforderung angegebene Sitzung wird nicht erwartet. |
invalidSessionRestricted |
Die in der Anforderung angegebene Sitzung ist aufgrund von Dienstkonfigurationen oder Einschränkungen ungültig. Ein weiterer Zugriff auf die in der fehlgeschlagenen Anforderung angegebene Sitzung wird nicht erwartet. Das erneute Erstellen von Sitzungen mit derselben createSession-Anforderung wird erst erwartet, wenn sich die Einschränkungen oder Konfigurationen ändern, die die Anforderung blockieren. Das erneute Erstellen von Sitzungen mit einer anderen createSession-Anforderung kann oder nicht erfolgreich sein. Ein Endbenutzer kann die gleichen Vorgänge manuell mit Excel Online ausführen, um weitere Details zu den Einschränkungen zu erhalten. |
invalidSessionUnexpected |
Die in der Anforderung angegebene Sitzung ist aufgrund eines unerwarteten Problems ungültig. Ein weiterer Zugriff auf die in der fehlgeschlagenen Anforderung angegebene Sitzung wird nicht erwartet. Das Erneute Erstellen von Sitzungen mit derselben createSession-Anforderung ist nicht zu erwarten. Das erneute Erstellen von Sitzungen mit einer anderen createSession-Anforderung kann oder nicht erfolgreich sein. |
invalidSessionUnsupportedWorkbook |
Die in der Anforderung angegebene Sitzung ist ungültig, da die Arbeitsmappe nicht unterstützte Features enthält oder die Größenbeschränkung überschreitet. In der Regel werden die nicht unterstützten Faktoren von einem anderen Client eingeführt, der auf die Arbeitsmappe zugreift. Ein weiterer Zugriff auf die in der fehlgeschlagenen Anforderung angegebene Sitzung wird nicht erwartet. Das erneute Erstellen von Sitzungen mit derselben createSession-Anforderung wird erst erwartet, wenn die nicht unterstützten Faktoren entfernt wurden. Das erneute Erstellen von Sitzungen mit einer anderen createSession-Anforderung kann oder nicht erfolgreich sein. Ein Endbenutzer kann die gleichen Vorgänge manuell mit Excel Online ausführen, um weitere Details zu den nicht unterstützten Faktoren zu erhalten, oder mit Excel Desktop, wo die Arbeitsmappe möglicherweise unterstützt wird. |
methodNotAllowedUncategorized |
Die in der Anforderung angegebene HTTP-Methode ist für die Ressource nicht zulässig. Es wird nicht erwartet, dass der Microsoft Graph-Client die fehlgeschlagene Anforderung erneut sendet. |
notFoundUncategorized |
Die angeforderte Ressource wurde nicht gefunden. Es wird nicht erwartet, dass der Microsoft Graph-Client die fehlgeschlagene Anforderung erneut sendet. |
notImplementedUncategorized |
Das angeforderte Feature ist derzeit nicht implementiert. Es wird nicht erwartet, dass der Microsoft Graph-Client die fehlgeschlagene Anforderung erneut sendet. |
payloadTooLargeUncategorized |
Die Anforderungsnutzlast überschreitet die Größenbeschränkung. Es wird nicht erwartet, dass der Microsoft Graph-Client die fehlgeschlagene Anforderung erneut sendet. |
serviceUnavailableUncategorized |
Der Dienst ist vorübergehend nicht verfügbar oder überlastet. Es wird nicht erwartet, dass der Microsoft Graph-Client die fehlgeschlagene Anforderung erneut sendet, bis die angegebene Abkühldauer vorüber ist. |
tooManyRequestsUncategorized |
Die fehlgeschlagene Anforderung überschreitet bestimmte Häufigkeitsbeschränkungen. Es wird nicht erwartet, dass der Microsoft Graph-Client die fehlgeschlagene Anforderung erneut sendet, bis die angegebene Abkühldauer vorüber ist. Bewährte Methoden zum Reduzieren der Drosselung finden Sie unter Reduzieren von Drosselungsfehlern. |
transientFailure |
Fehler bei der Anforderung aufgrund eines vorübergehenden Fehlers. Es wird nicht erwartet, dass der Microsoft Graph-Client die fehlgeschlagene Anforderung erneut sendet, bis die angegebene Abkühldauer vorüber ist. |
unauthorizedUncategorized |
Die erforderlichen Authentifizierungsinformationen für die Ressource fehlen oder sind ungültig. Es wird nicht erwartet, dass der Microsoft Graph-Client die fehlgeschlagene Anforderung erneut sendet. |
unsupportedWorkbook |
Fehler bei der Anforderung. Die Arbeitsmappe enthält nicht unterstützte Features oder überschreitet die Größenbeschränkung. Es wird nicht erwartet, dass der Microsoft Graph-Client die fehlgeschlagene Anforderung erneut sendet, bis die nicht unterstützten Faktoren entfernt wurden. |
Hinweis
Für das reguläre Muster wird die fehlgeschlagene Anforderung als die Anforderung definiert, die der Antwort entspricht. Für das Muster mit zeitintensiven Vorgängen ist die fehlgeschlagene Anforderung diejenige, die den fehlgeschlagenen Vorgang auslöst.
Optionale Fehlercodebeispiele der zweiten Ebene
Die folgende Tabelle enthält Beispiele für optionale Fehlercodes der zweiten Ebene, einschließlich der entsprechenden Behandlungsanweisungen für jeden Fehlercode. Der Dienst kann jederzeit neue Fehlercodes hinzufügen.
Code | Anweisungen |
---|---|
accessDenied |
Sie können den angeforderten Vorgang nicht ausführen (z. B. Änderungen an gesperrten Zellen). Es wird nicht erwartet, dass der Microsoft Graph-Client die fehlgeschlagene Anforderung erneut sendet. |
filteredRangeConflict |
Der Vorgang ist fehlgeschlagen, weil er mit einem gefilterten Bereich in Konflikt kommt. Es wird nicht erwartet, dass der Microsoft Graph-Client die fehlgeschlagene Anforderung erneut sendet. |
generalException |
Beim Verarbeiten der Anforderung ist ein interner Fehler aufgetreten. Es wird nicht erwartet, dass der Microsoft Graph-Client die fehlgeschlagene Anforderung erneut sendet. |
insertDeleteConflict |
Der Einfüge- oder Löschvorgang führte zu einem Konflikt. Es wird nicht erwartet, dass der Microsoft Graph-Client die fehlgeschlagene Anforderung erneut sendet. Ein Endbenutzer kann die gleichen Vorgänge mit Excel Online manuell ausführen, um weitere Details zum Konflikt zu erhalten. |
invalidArgument |
Das Argument ist ungültig, fehlt oder weist ein falsches Format auf. Es wird nicht erwartet, dass der Microsoft Graph-Client die fehlgeschlagene Anforderung erneut sendet. |
invalidReference |
Dieser Verweis ist für den aktuellen Vorgang nicht gültig. Es wird nicht erwartet, dass der Microsoft Graph-Client die fehlgeschlagene Anforderung erneut sendet. |
itemAlreadyExists |
Die erstellte Ressource ist bereits vorhanden. Es wird nicht erwartet, dass der Microsoft Graph-Client die fehlgeschlagene Anforderung erneut sendet. |
itemNotFound |
Die angeforderte Ressource ist nicht vorhanden. Es wird nicht erwartet, dass der Microsoft Graph-Client die fehlgeschlagene Anforderung erneut sendet. |
methodNotAllowed |
Die in der Anforderung angegebene HTTP-Methode ist für die Ressource nicht zulässig. Es wird nicht erwartet, dass der Microsoft Graph-Client die fehlgeschlagene Anforderung erneut sendet. |
nonBlankCellOffSheet |
Neue Zellen können nicht eingefügt werden, da dadurch nicht leere Zellen vom Ende des Arbeitsblatts verschoben würden. Es wird nicht erwartet, dass der Microsoft Graph-Client die fehlgeschlagene Anforderung erneut sendet. Ein Endbenutzer kann Zeilen oder Spalten löschen, um Platz für das Einfügen von Inhalten zu schaffen, und es dann erneut versuchen. |
rangeExceedsLimit |
Die Zellanzahl im Bereich hat die maximal unterstützte Anzahl überschritten. Der Microsoft Graph-Client kann versuchen, eine Anforderung mit einer kleineren Bereichsgröße zu senden. Weitere Informationen finden Sie unter Ressourcenlimits und Leistungsoptimierung für Office-Add-Ins. |
requestAborted |
Die Anforderung wurde während der Laufzeit abgebrochen, was in der Regel durch lange Zeitberechnungen von Funktionen in der Arbeitsmappe verursacht wurde. Es wird nicht erwartet, dass der Microsoft Graph-Client die fehlgeschlagene Anforderung erneut sendet. |
unsupportedOperation |
Dieser Vorgang wird nicht unterstützt. Es wird nicht erwartet, dass der Microsoft Graph-Client die fehlgeschlagene Anforderung erneut sendet. |
Hinweis
Für das reguläre Muster wird die fehlgeschlagene Anforderung als die Anforderung definiert, die der Antwort entspricht. Für das Muster mit zeitintensiven Vorgängen ist die fehlgeschlagene Anforderung diejenige, die den fehlgeschlagenen Vorgang auslöst.
3. Analysieren des Fehlercodes der obersten Ebene
Wenn Sie keinen bekannten Fehlercode der zweiten Ebene finden können, sollten Sie die Anweisungen für Fehler der obersten Ebene befolgen. Die Fehlercodes der obersten Ebene sind an den status-Code gebunden, und Sie können entsprechend den entsprechenden status-Codes handeln. Ausführliche Informationen zu Fehlercodes und -meldungen der obersten Ebene finden Sie unter Fehlercodes und -meldungen.
4. Analysieren des status Codes
Wenn Sie für das reguläre Muster keinen bekannten Fehlercode der zweiten Ebene oder keinen Fehlercode der obersten Ebene finden konnten, sollten Sie maßnahmen gemäß dem HTTP-status-Code ausführen.
5. Fehlerwiederherstellung cooldown
Für einige Der Antworten im regulären Muster kann eine Wiederherstellungsabkühldauer in Sekunden über einen Retry-After
Header bereitgestellt werden. Wenn eine Wiederherstellungsabkühlzeit vorliegt, wird erwartet, dass der Microsoft Graph-Client keine Folgeanforderungen sendet, bevor die angegebene Dauer verstreicht. Bewährte Methoden im Zusammenhang mit Retry-After
Headern und Drosselung finden Sie unter Reduzieren von Drosselungsfehlern.
Diagnoseinformationen
Alle Inhalte in der Antwort, die in den vorherigen Schritten nicht verwendet wurden, dienen nur Diagnose Zweck (einschließlich Zeichenfolgen in den Nachrichtenfeldern). Es wird nicht empfohlen, eine Abhängigkeit von diesen Inhalten zu übernehmen, da sie sich ohne Vorheriges ändern können.
Sonderfallbehandlung
Wenn bei sitzungsbehafteten Anforderungen ein - oder 503/serviceUnavailable
-502/badGateway
Fehler auftritt, wenn ein bekannter Fehlercode der zweiten Ebene gefunden wird, befolgen Sie die entsprechenden Anweisungen. Andernfalls sollten Sie die Sitzung direkt neu erstellen.