Moin Moin!
Das sieht kaputt aus:
try {
if (!window.openDatabase) {
alert('Datenbank konnte nicht geöffnet werden.');
} else {
var shortName = 'my_db_name';
var version = '1.0';
var displayName = 'DB name';
var maxSize = 5242880; // in bytes -> (5MB)
var db = openDatabase(shortName, version, displayName, maxSize);
openDatabase soll wohl eine Exception auslösen, so wie Dein Code aussieht. Tut es das oder liefert es false o.ä.?
db bleibt im Scope der Funktion (in Perl wäre db außerhalb des try-Blockes nicht verfügbar, aber Javascript tickt da etwas anders), und ist nicht global verfügbar. Das könnte Dein Script stören, wenn Du in einer anderen Funktion auf db zugreifen willst.
}
} catch(e) {
var INVALID_STATE_ERR;
if (e == INVALID_STATE_ERR) {
Du vergleichst eine Exception mit einer undefinierten Variable. Ob das gut ist?
// Version number mismatch. alert("Die Version der Datenbank ist nicht valide.");
} else {
alert("Unbekannter Fehler "+e+".");
}
return;
}
Und dann?
Dieses Stück Code liefert an den Rest des Codes KEINERLEI Fehlerstatus zurück. Der Benutzer sieht eine Alertbox, aber der Rest deines Codes außerhalb dieser Funktion wird von den Problemen mit openDatabase nie etwas erfahren.
Alexander
--
Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so".