You have provided a catch block. As a result the program continues normally.
After the error, execution enters the catch block and then runs finally and the line thereafter.
One of the statements mentioned at
Exceptions and Exception Handling (C# Programming Guide)[
^] is "In many cases, an exception may be thrown not by a method that your code has called directly, but by another method further down in the call stack. When this happens, the CLR will unwind the stack, looking for a method with a catch block for the specific exception type, and it will execute the first such catch block that if finds. If it finds no appropriate catch block anywhere in the call stack, it will terminate the process and display a message to the user.".
If you want to exit the program, re-throw the error from the catch method.