Como capturar um ENOENT com nodejs child_process.spawn?

estou usandospawn para gerar um processo de execução longa que envia saída ao longo do tempo para o stdio e é lido e processado pelo meu script nodejs. A parte complicada é que não posso garantir que o comando enviado será sempre válido. Como posso detectar um erro na desova? De preferência, isso não envolverá a instalação de um manipulador de exceções global, pois não quero lidar com outras exceções. (Se essa for a única maneira, eu precisaria descobrir quando o processo gerado foi iniciado corretamente e depois desinstalar o manipulador, que é uma bagunça na qual eu prefiro não entrar.)

O código que eu quero executar seria algo como isto:

var spawn = require('child_process').spawn;

try {
    spawn("zargle");
} catch (e) {
    console.error("I'm handling the error!");
}

Mas isso apenas gera uma exceção não capturada em algum lugar do loop de eventos do nó, presumivelmente porque a chamada é assíncrona e nem sequer tentou iniciar o processo filho no intervalo de tempo do meu script.

As únicas exceções que precisam ser capturadas são quando a geração falha ao iniciar o processo (por exemplo, o nome está incorreto e ENOENT é lançado). Neste momento, não estou preocupado com nenhum problema que o processo gerado possa gerar por si próprio.

Semelhante, mas diferente:Como depurar "Error: spawn ENOENT" no node.js?

Sei exatamente por que estou recebendo ENOENT e sei o que mudar para que o erro não aconteça. Minha pergunta é como responder graciosamente a essa situação se o erro for inevitável.

questionAnswers(3)

yourAnswerToTheQuestion