There's nothing deep happening here.. Basically, it's handy to test something to see if it's of a certain type (i.e. use 'as'). You would want to check the result of the 'as' call to see if the result is null.
When you expect a cast to work and you want the exception to be thrown, use the 'classic' method.