J'essaie d'utiliser une instruction try-catch-finally pour vérifier les erreurs de l'utilisateur, puis passer à la page suivante s'il n'y a pas d'erreur (je sais qu'il y a des moyens plus faciles de le faire mais je suis obligé d'utiliser un try-catch-finally). Dans ce cas: foo est l'entrée de l'utilisateur, l'entrée doit être un nombre entre 0 et 100, et displayDiagram() fera avancer l'utilisateur à la page suivante.En utilisant une instruction else-if avec un try-catch-finally
Tout fonctionne pour moi jusqu'au blocage final. Si l'utilisateur n'entre rien, il passe à la diapositive suivante. Comment puis-je l'empêcher d'avancer si rien n'a été entré?
Voici le code:
try {
if (foo == "") throw "Enter your estimated score";
if (isNaN(foo)) throw "Only use numbers for your estimated score";
if (foo < 0) throw "Estimated score is not valid. Enter a higher number";
if (foo > 100) throw "Estimated score is too high. Enter a lower number";
}
catch(err) {
document.getElementById("fooMessage").innerHTML = err;
document.getElementById("fooInput").style.borderColor = "red";
}
finally {
if (err = undefined) {
displayDiagram();
}
}
Un autre bloc, j'ai enfin essayé comprend:
finally {
if (preScore >= 0 && preScore <= 100) {
displayDiagram();
} else if (typeof preScore != "string") {
displayDiagram();
}
}
Toutes les idées? Merci!
indice: opérateur d'affectation vs comparaison. '=' vs '==' – ippi
indice 2: erreur est seulement * visible * dans 'catch' - donc' == 'ne pas résoudre le problème sous-jacent –
en fait, je pense que le code dans la question a une faute de frappe, parce que' if (err = undefined) 'would ** never ** true et lancerait probablement une erreur - donc' displayDiagram' ne serait jamais ** exécuté **. la seule façon de l'exécuter est s'il y avait un 'var err' qui n'était pas défini ** et ** le code utilisé' == 'au lieu de' = '- dans ce cas' displayDiagram' serait ** toujours ** exécuté quoi que ce soit –