Is the SQL Server IsShutdown property useful to determine whether a database is in a good state?
A better practice might be to look at the status of the database in sys.databases or sysdatabases.  If the status is not 0 then there is probably a problem (unless you are using mirroring, log shipping, etc. where the database status shouldn't be 0).