Attraper double entrée Exception
Comment puis-je attraper cette Exception :
com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException:
Duplicate entry '22-85' for key 'ID_CONTACT'
Il serait préférable de résoudre le problème qui est à l'origine de cette exception
ce n'est pas un problème, mais avec une application web, un utilisateur peut modifier les paramètres de la requête http et je veux être sûr que tout ce travail si je veux ajouter cette couche de sécurité.
Mais comme vous pouvez le voir à partir de la stacktrace que pendant insérer vous êtes à la violation d'une contrainte et c'est mieux d'abord de valider les données avant de les envoyer à la base de données. Vous pouvez bien évidemment exception de catch, si vous voulez vraiment, mais je préfère une solution plus propre
La solution la plus propre serait de rediriger l'utilisateur vers une générique de la web page d'erreur qui ne montre pas l'exception trace (évidemment), mais avertit le propriétaire du système. Beaucoup mieux que d'essayer de gérer ces cas d'attaque...
Mais comment savez-vous son une entrée en double exception. L'exception, dit-violation de contrainte. Que faire si son autre contrainte?
ce n'est pas un problème, mais avec une application web, un utilisateur peut modifier les paramètres de la requête http et je veux être sûr que tout ce travail si je veux ajouter cette couche de sécurité.
Mais comme vous pouvez le voir à partir de la stacktrace que pendant insérer vous êtes à la violation d'une contrainte et c'est mieux d'abord de valider les données avant de les envoyer à la base de données. Vous pouvez bien évidemment exception de catch, si vous voulez vraiment, mais je préfère une solution plus propre
La solution la plus propre serait de rediriger l'utilisateur vers une générique de la web page d'erreur qui ne montre pas l'exception trace (évidemment), mais avertit le propriétaire du système. Beaucoup mieux que d'essayer de gérer ces cas d'attaque...
Mais comment savez-vous son une entrée en double exception. L'exception, dit-violation de contrainte. Que faire si son autre contrainte?
OriginalL'auteur Youssef | 2014-12-20
Vous devez vous connecter pour publier un commentaire.
Je ressort donc nous résoudre par
org.springframework.dao.DataIntegrityViolationException
OriginalL'auteur Youssef
attraper SQLIntegrityConstraintViolationException, si vous utilisez la version 1.6 de Java+
par exemple
ou
Unreachable catch block for SQLIntegrityConstraintViolationException. This exception is never thrown from the try statement body
quelle est la version de votre serveur mysql-connector-java ? Et qu'est-ce que le SQL vous essayez de mettre à jour ?
La capture de SQLException est nécessaire. Ensuite, vous pouvez détecter si c'est un SQLIntegrityConstraintViolationException. Notez que MySQLIntegrityConstraintViolationexception est un type de SQLIntegrityConstraintViolationException.
OriginalL'auteur auntyellow
Un - Journal de l'exception dans le détail
Voici ce que j'utilise pour ouvrir une session SQL Exceptions, de sorte que je peux être sûr de ce que pour attraper;
Voici un exemple de Sortie;
B - intercepter l'Exception et de vérifier les paramètres
Pour attraper double de la clé d'Exception, nous avons besoin d'attraper la classe spécifique qui est
MySQLIntegrityConstraintViolationException
. Aussi, les paramètres suivants doivent correspondre;Donc j'utilise le bloc suivant pour attraper les entrées en double;
OriginalL'auteur Levent Divilioglu
Le code suivant fonctionne pour moi:
OriginalL'auteur SEIYA
- Je utiliser le Printemps.
Alors attraper org.springframework.dao.DuplicateKeyException
OriginalL'auteur jjason
Je suis d'accord, mais nous avons quelque chose comme ça dans mon de Printemps de l'Application:-
RequestValidationException/MessageConstants sont personnalisé:
OriginalL'auteur srinivas y
Loook au framework Spring le code source
Regarder spring JDBC erreur résoudre code.
Il y a plusieurs façons comment vous pouvez atteindre les différents Exception des traducteurs:
Donc Dublicate comportement peut changer de DuplicateKeyException à DataIntegrityViolationException.
OriginalL'auteur Dennis R