This is a fun object, consider this

SPSite site = new SPSite(“legitimate site collection url”) ;

SPWeb webA = site.OpenWeb(“Some bogus url”) ;
SPWeb webB = site.AllWebs[“some bogus url”] ;

You wold expect this code to throw two exeptions, you would be wrong.
Well you would expect webA and webB to at least be null, you would be wrong.

Apparently (not for the sake of consistency )

Do stuff with webA

Is the prescribed way to deal with this, how many of us have seen code like the following scattered all over blogs and such

if (webA != null) ….

Well, you live and learn.