Ce sujet est résolu.
1 | |||||
Auteur | Messages | ||||
---|---|---|---|---|---|
décapode | #1 Posté le 29/11/2013 à 18:51:43 | ||||
Re HI! POur faire simple comment faire un : On Error Resume Next comme en vb6 Exemple : If truc = machin then bla bla Pas de pot 'machin' est NULL, mais je veut continuer quand même, J'essaie les try, catch dans tous les sens, mais non.
ou :
Un peu comme en vbnet Mais là non plus | |||||
gambix | #2 Posté le 29/11/2013 à 22:37:59 | ||||
Faire simple ! | en vb : Public Sub OnErrorDemo() On Error GoTo ErrorHandler ' Enable error-handling routine. Dim x As Integer = 32 Dim y As Integer = 0 Dim z As Integer z = x / y ' Creates a divide by zero error On Error GoTo 0 ' Turn off error trapping. On Error Resume Next ' Defer error trapping. z = x / y ' Creates a divide by zero error again If Err.Number = 6 Then ' Tell user what happened. Then clear the Err object. Dim Msg As String Msg = "There was an error attempting to divide by zero!" MsgBox(Msg, , "Divide by zero error") Err.Clear() ' Clear Err object fields. End If Exit Sub ' Exit to avoid handler. ErrorHandler: ' Error-handling routine. Select Case Err.Number ' Evaluate error number. Case 6 ' Divide by zero error MsgBox("You attempted to divide by zero!") ' Insert code to handle this error Case Else ' Insert code to handle other situations here... End Select Resume Next ' Resume execution at same line ' that caused the error. End Sub En Gambas :
Moins de texte dans une signature c'est agrandir son espace. | ||||
décapode | #3 Posté le 30/11/2013 à 05:56:40 | ||||
Salut Ce que je n'ai vu dit nulle part c'est que le catch supprime les erreurs externes à sa procédure, mais pas celles qui lui sont propres, d'où mon erreur... ...enfin en partie
... et je ne sais toujours pas traiter une erreur sur un IF | |||||
Jack | #4 Posté le 30/11/2013 à 08:40:09 | ||||
Catch intercepte ton programme en cas d'erreur donc tu ne dois pas mettre if error puisque implicitement il y en a une, mais tout simplement Catch message.Error(Error.Text & " " & Error.where) Si tu veux traiter une erreur par un if il faut utiliser Try par exemple : try x = b if error then x = 1 Si tu fait: try x = b catch x = 1 Tu n'iras jamais sur le catch Pour un code démocratique nationalisons Gambas. | |||||
décapode | #5 Posté le 30/11/2013 à 08:52:22 | ||||
Salut Compris Merci | |||||
gambix | #6 Posté le 30/11/2013 à 14:52:23 | ||||
Faire simple ! | catch et try font le même travail... absorber l'erreur... si try est passé par la ... catch n'est pas déclenché. c'est ce que j'ai voulus te montrer aussi avec mon exemple. Moins de texte dans une signature c'est agrandir son espace. | ||||
1 |