try catch en sql on obtient un « 0 row(s)
Pourquoi lorsqu’on rajoute un try catch en sql on obtient un « 0 row(s) affected » qui peut poser souci en java pour catcher l’erreur.
Avec myBatis, lorsqu’on travaille avec stored procedure avec try catch et que le premier résultat n’est pas une erreur (0 row(s) affected). MyBatis n’arrive pas à attraper l’erreur, dans mon cas il suffit d’ajouter « set nocount on » pour éviter ce problème. Mais je me pose quand même la question d’où vient ce «0 row(s) affected » ?
Voici un exemple :
result
Code:
1 2
| Msg 8134, Level 16, State 1, Line 1
Divide by zero error encountered. |
Code:
1 2 3 4 5 6 7
| --SET NOCOUNT ON
BEGIN TRY
SELECT 1/0
END TRY
BEGIN CATCH
RAISERROR('teqt',16,1)
END CATCH |
Result avec l'ajout d'une ligne supplémentaire
Code:
1 2 3
| (0 row(s) affected)
Msg 50000, Level 16, State 1, Line 7
teqt |
Merci d’avance