Using the Datadapter to capture errors is one way of handling things;
'da = DataAdapter
'ds = Dataset
da.ContinueUpdateOnError = True
da.Update (ds, "SomeTable")
If ds.Table(0).HasErrors Then
Dim dr As DataRow = ds.Table(0).GetErrors()
'Iterate the dr to get the errors
End If