Question Aide pour de l'optimisation

Plus d'informations
il y a 8 ans 7 mois #24035 par Betrancourt
Réponse de Betrancourt sur le sujet Catch -> SQL
Hey je me permet de ré ouvrir ce topic :D je suis vers la fin de mon optimisation
pour info je me suis bien bien avancée, mais il me manque une dernière petite partie d'on je n'ai pas réussi à trouver d'aide sur le net, c'est sur la gestion d'erreur SQL server.

En gros voici mon code : [code:1]function Invoke-DatabaseQuery {
[CmdletBinding()]
param (
[System.Data.SqlClient.SqlConnection]$connection,
[string]$query
)

try {
$command = $connection.CreateCommand()
$command.CommandText = $query
[Void]$command.ExecuteNonQuery()
}


catch [System.Management.Automation.MethodInvocationException] {
write-log WARN -Message \"Impossible d'effectuer l'ajout SQL, l'application '$($app.id)' est déjà présente ! \"
}

catch {

write-log FATAL -Message \"Impossible d'effectuer l'action SQL\"

} [/code:1]

j'aimerais trouver les exceptions pour différencier le moment ou :
- il ne trouve pas la BDD
- il ne peut pas ajouter d'information car elle est déja présente dans la BDD

J'ai pas mal regardé le tuto de Laurent Dardenne sur la gestion d'erreur, mais aucun endroit sur le SQL :S<br><br>Message édité par: Valeze, à: 26/07/17 09:15

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 8 ans 7 mois #24036 par Laurent Dardenne
Réponse de Laurent Dardenne sur le sujet Re:Catch -&gt; SQL
Valeze écrit:

J'ai pas mal regardé le tuto de Laurent Dardenne sur la gestion d'erreur, mais aucun endroit sur le SQL :S&lt;br&gt;

Normal, en dotnet la gestion d'exception n'est pas lié à domaine particulier.

En revanche tu peux avoir des objets exception spécialisés qui portent d'autres informations.
Par exemple dans ton cas c'est une règle de gestion basique (intégrité référentielle). Soit c'est un trigger dans la base qui gère un code d'erreur propre à ton appli soit tu interprètes le résultat de l'exception pour chaque règle.

Je ne suis pas certains que la gestion de MethodInvocationException soit la bonne approche.

Il te faut créer un jeu de test pour chaque exception(régle) que tu veux gérer et lire la doc pour connaitre les exception déclenchées.

C'est là qu’intervient l'outil Pester ;-)

Tutoriels PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.042 secondes
Propulsé par Kunena