dedlfix: node.js und promise-mysql: Wie Fehlerbehandlung?

Beitrag lesen

Tach!

Die Frage ist nun, wie ich hier sinnvoll eine Fehlerbehandlung einbaue. [...] wenn z.B. ein Eintrag nicht gefunden wird, dann bricht mir das Script ab mit dem Fehler: "Unhandled rejection TypeError".

Jetzt könnte ich wohl jedes Kommando mit einem Try {} Catch {} klammern.

Kannst du, dürfte aber nicht funktionieren im Zusammenhang mit Promises / asynchronen Callbacks. Lediglich innerhalb einer Funktion wird das erfolgreich sein.

Oder in jedes Query das Errorhandling einbauen:

connection.query('select data from werte where idnr='+param1, function (err, rows) {
    if (err) throw new Error(err)
})

Das wäre eine Variante. Soweit ich sehe, ist das die Variante von mysqljs

Oder ein .catch(err) an jedes Ende vom .then einbauen?

Das geht auch. Aber nur mit promise-mysql?

Oder die Variable prüfen:

if (!rows[0].data) {
	throw err;
}

Damit prüfst du nicht auf Fehler sondern auf die Folgen eines Fehlers. Prüf doch lieber direkt.

Was denkt ihr? Was ist die sinnvollste und lesbarste Form der Fehlerbehandlung?

Lesbar ist Fehlerbehandlung selten. Bläht den meisten Code mehr auf als die eigentliche Arbeit. Nur weglassen ist auch keine Option.

dedlfix.