Eu faço isso o tempo todo com coisas como erros de conversão em D:
import std.conv, std.stdio, std.exception;
void main(string[] args) {
enforce(args.length > 1, "Usage: foo.exe filename");
double[] nums;
// Process a text file with one number per line into an array of doubles,
// ignoring any malformed lines.
foreach(line; File(args[1]).byLine()) {
try {
nums ~= to!double(line);
} catch(ConvError) {
// Ignore malformed lines.
}
}
// Do stuff with nums.
}
Dito isso, acho que todos os blocos catch devem ter alguma coisa , mesmo que esse seja apenas um comentário explicando por que você está ignorando a exceção.
Edit: Eu também quero enfatizar que, se você vai fazer algo assim, você deve ter cuidado para pegar apenas a exceção específica que você deseja ignorar. Fazer um antigo catch {}
é quase sempre uma coisa ruim.