I think a 'let it fail' approach might be better though, execute your queries and if a NoHostAvailableException is returned then behave accordingly. The reason I think this is better is because it is less complicated and if no hosts are available when you go to make a query it will throw an error pretty fast. Even if you check either of those two ways I mentioned you could still possibly encounter a NoHostAvailableException (i.e. if hosts go down in process of sending the query).
Thanks!
Andy