Step 1 of 5 · Reading · ~1 min
Learn
LINQ and Exceptions
VB.Net uses .NET exceptions — same as C#.
Try/Catch/Finally:
Try
Dim n = Integer.Parse(input)
Process(n)
Catch ex As FormatException
Console.WriteLine("bad number: " & ex.Message)
Catch ex As Exception
Console.WriteLine("unexpected: " & ex.Message)
Throw ' re-throw
Finally
Cleanup()
End Try
When clause for filtered catches (.NET 4+):
Try
DoWork()
Catch ex As HttpException When ex.StatusCode = 404
HandleNotFound()
Catch ex As HttpException
HandleOtherError(ex)
End Try
The When filters without unwinding the stack — useful for keeping stack traces clean.
Custom exceptions:
Class ValidationException
Inherits Exception
Public Property FieldName As String
Public Sub New(field As String, message As String)
MyBase.New(message)
Me.FieldName = field
End Sub
End Class
Throw New SomeException(...) to raise.
Using block — automatic disposal (like C#'s using):
Using reader As New StreamReader("data.txt")
Dim line = reader.ReadLine()
End Using
The IDisposable.Dispose() is called automatically when the block exits, even on exception.
A note on string building here. The catches above concatenate with
& rather than using $"..." interpolation: the grader's compiler
predates interpolated strings. & also has the advantage of never
surprising you with a locale-dependent conversion.
Discussion
Ask a question, share an insight, or help someone who’s stuck.
Sign in to post a comment or reply.
Loading…