Gestion des exceptions dans une expression LINQ

J'ai une LINQ simple expression comme:

newDocs = (from doc in allDocs
       where GetDocument(doc.Key) != null
       select doc).ToList();

Le problème est, GetDocument() peut lever une exception. Comment puis-je ignorer tous les doc-éléments, lorsqu'GetDocument(doc.La clé) == null ou lève une exception?

Le même code dans la vieille école ressemble:

foreach (var doc in allDocs)
            {
                try
                {
                    if (GetDocument(doc.Key) != null) newDocs.Add(doc);
                }
                catch (Exception)
                {
                    //Do nothing...
                }
            }

source d'informationauteur Rocco Hundertmark