Bonjour bonjour!
Voila, je developpe un logiciel depuis un ptit moment, comme c est bientot l heure de le mettre en service, je me suis mis a le rendre propre et a mettre du try catch un peu de partout.
J ai donc etudier, lu etc etc.
Vioci un exemple:
Une petit fonction qui va chercher une info dans la base de donnees... Tout marche tout va bien...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31 Public Function Site_name_with_ItemId(ByVal id As Integer) As String 'Return a site name with a Item ID Try Form_Main.SqlConnection1.Open() Dim com_sql As New SqlClient.SqlCommand Dim dr_sql As SqlClient.SqlDataReader com_sql.Connection = Form_Main.SqlConnection1 com_sql.CommandType = CommandType.Text com_sql.CommandText = "SELECT Name_site FROM Site WHERE ID_site=(SELECT IDFK_site_item FROM Item WHERE ID_item='" & id & "')" dr_sql = com_sql.ExecuteReader Dim ok As String If dr_sql.Read() = True Then If dr_sql.IsDBNull(0) Then ok = "" Else ok = dr_sql.GetString(0) End If Else ok = "" End If dr_sql.Close() Form_Main.SqlConnection1.Close() Return ok Catch ex As Exception MsgBox(ex.Message) add_log(ex.Message, "Site_name_with_ItemId") End Try End Function
Mais VB2005, me souligne en gris End Function et me dis :
Les questions:Function Site_name_with_ItemId doesn't return a value on all paths. A null reference exception could occur at run time when the result is used
-Bien sur que peut etre la function ne retournera peut etre rien (j espere pas) mais c est bien pour ca que je mets un try catch non?
-J ai donc essayer de mettre un Finally avec un return quand meme, mais il aime pas.
- Est ce que je dois ignorer ce warning, ou fais je quelque chose de pas propre?
Merci
Partager