I'd like to bump the priority of this issue up. The PowerShell APIs are implemented haphazardly like this example, and it makes scripting a real pain.
$var1 = get-nasnapshot -name 'somevol' -snapname 'doesnotexist'
This snapshot doesn't exist, but the command doesn't complain. $var1 will be $null. This is good for testing the existence of a snapshot!
$var2 = get-navol -name 'doesnotexist'
This volume doesn't exist. The API pukes. Presumably $var2 will be $null, but there is no way to keep the exception from printing on the screen. -ErrorAction would be pretty handy here.