Dies ist die alte 4D Dokumentations-Website. Die neue und aktualisierte Dokumentation finden Sie unter developer.4d.com

Home

 
4D v20 R7
throw

throw 


 

throw ( errorCode {; description} ) 
Parameter Typ   Beschreibung
errorCode  Lange Ganzzahl in A long integer representing the error code.
description  Text in A text providing a description of the error.
throw {( errorObj )} 
Parameter Typ   Beschreibung
errorObj  Objekt in An object containing properties to build the error

Der Befehl throw erzeugt einen Fehler, der entweder sofort oder bei der Rückkehr der aufrufenden Methode zu ihrem Aufrufer (verzögerter Modus) ausgelöst wird. 

Wenn Sie in Ihrem 4D Code auf eine Situation stoßen, in der ein Fehler auftritt, können Sie den Befehl throw verwenden, um explizit einen Fehler auszulösen und eine spezifische Fehlermeldung oder Fehlernummer anzugeben. Dies kann nützlich sein, um außergewöhnliche Bedingungen oder ungültige Eingaben zu signalisieren.

Fehler, die mit dem Befehl throw ausgelöst werden, werden von der 4D Runtime wie normale Fehler behandelt: Der Standard-Fehlerdialog wird angezeigt, es sei denn, es wurde eine Abfangmethode mit dem Befehl ON ERR CALL installiert.

Der Befehl unterstützt drei Syntaxen:

throw(errorCode{; description})

Es gibt die Fehlermeldung und einen optionalen Beschreibungstext an, der Fehler wird sofort ausgelöst.
Wenn keine Beschreibung angegeben wird: wird sie mit ausgefüllt:

  • Fehlermeldung (errorCode): (host) in der Host-Applikation
  • Fehlermeldung (errorCode): (C00x) in einer Komponente
throw(errorObj)

Das Objekt errorObj ermöglicht detailliertere Fehlerinformationen und die Kontrolle über die Fehlerbehandlung. errorObj kann die folgenden Eigenschaften sowie jede benutzerdefinierte Eigenschaft enthalten, auf die Sie die Eigenschaft message beziehen können. 

Sie kann die folgenden Eigenschaften enthalten sowie jede benutzerdefinierte Eigenschaft, auf die Sie mit Hilfe von Platzhaltern innerhalb der Nachrichteneigenschaft verweisen können. 

 

 Eigenschaft  Typ  Beschreibung
 componentSignature  Text Vier lateinische Buchstaben als Signatur zur eindeutigen Identifizierung der Fehlerursache.
  • Wenn die componentSignature nicht angegeben wird, verwendet der Befehl "host" für die Host Datenbank und "C001", "C002", ... für die Komponenten.
 errCode  Nummer  Fehlermeldung.
  • Wenn der errCode nicht angegeben wird, verwendet der Befehl -1.
 message  Text  Beschreibung des Fehlers.
  • Die message kann Platzhalter enthalten, die durch benutzerdefinierte Eigenschaften ersetzt werden, die dem errorObj-Objekt hinzugefügt werden. Jeder Platzhalter muss mit geschweiften Klammern {} angegeben werden, die den Namen der zu verwendenden Eigenschaft einschließen.
  • Wenn die message nicht angegeben wird oder ein leerer String ist, sucht der Befehl in den aktuellen xliff-Dateien der Datenbank nach einer Beschreibung mit einem wie folgt aufgebauten resname: ERR_{component}_{code}".
 deferred  Boolean True, wenn der Fehler zurückgestellt werden soll, wenn die aktuelle Methode zurückkehrt oder am Ende des Try-Blocks. Der Standardwert ist false.

Wenn Sie diese Syntax verwenden, wird das errorObj-Objekt in Last errors zurückgegeben.

Hinweis: Es ist möglich, den Befehl mehrmals in derselben Projektmethode aufzurufen, um mehrere Fehler zu erzeugen. Sie können die Option Zurückgestellt verwenden, um alle Fehler auf einmal zu senden.

throw 

Es wirft alle aktuellen Fehler im deferred-modus, d.h. sie werden zu einem Stack hinzugefügt und behandelt, wenn die aufrufende Methode zurückkehrt. Dies geschieht normalerweise innerhalb eines ON ERR CALL Callbacks.

  • In einer Applikation: Wenn ein Fehler auftritt, wird er dem Fehlerstapel hinzugefügt und die ON ERR CALL Methode der Applikation wird am Ende der aktuellen Methode aufgerufen. Die Funktion Last errors gibt den Stapel der Fehler zurück.
  • Folglich kann in einer Komponente: Der Fehlerstapel kann an die Host-Applikation gesendet werden und die Methode ON ERR CALL der Host-Applikation wird aufgerufen. 

 var $code : Ganzzahl
 var $Beschreibung : Text
 $code :=50042 //Benutzerdefinierter Code
 $description :="Dies ist ein benutzerdefinierter Fehler"
 throw($code ;$description// Wirft einen Fehler mit der Meldung "Dies ist ein benutzerdefinierter Fehler" und errCode = 50042


throw({errCode: 1; message: "Dies ist ein Fehler"}) // Wirft einen Fehler mit errCode = 1 und der Meldung "Dies ist ein Fehler"


throw({errCode: 1}) // Wirft einen Fehler mit errCode = 1 und der Meldung "Fehlermeldung: 1 (Host)"


throw({message: "Dies ist ein Fehler"}) // Wirft einen Fehler mit errCode = -1 und der Meldung "Dies ist mein Fehler"


throw( {message: "Dies ist mein Fehler"; deferred: True}) // Wirft einen Fehler mit der Meldung "Dies ist mein Fehler" und errCode = -1 im deferred Modus


throw({componentSignature: "xbox"; errCode: 600; name: "myFileName"; path: "myFilePath"; deferred: True})
// Wirft einen Fehler mit der Meldung "Datei myFileName nicht gefunden (myFilePath)" im Deferred-Modus



Siehe auch 

ASSERT
Last errors
ON ERR CALL

 
EIGENSCHAFTEN 

Produkt: 4D
Thema: Unterbrechungen
Nummer: 1805

 
SEITENINHALT 
 
GESCHICHTE 

Erstellt: 4D v20 R2
Geändert: 4D v20 R5

 
ARTIKELVERWENDUNG

4D Programmiersprache ( 4D v20 R7)