Abordagem Fire and Forget

Relacionado aesta resposta,

Se realmente quero "disparar e esquecer" um método que retorna uma tarefa e (por simplicidade), vamos assumir que não se espera que o método gere nenhuma exceção. Eu posso usar o método de extensão listado na resposta:

public static void Forget(this Task task)
{
}

Usando esta abordagem, se houver erros em ação doTask que causam uma exceção, quando a exceção inesperada é lançada, a exceção será engolida e passará despercebida.

Pergunta, questão: Não seria mais apropriado nesse cenário que o método de extensão tenha o formato:

public static async void Forget(this Task task)
{
    await task;
}

Para que os erros de programação gerem uma exceção e sejam escalados (geralmente interrompendo o processo).

No caso de um método com exceções esperadas (e ignoráveis), o método precisaria se tornar mais elaborado (como um aparte, alguma sugestão sobre como construir uma versão desse método que levaria uma lista de tipos de exceção aceitáveis e ignoráveis? )

questionAnswers(3)

yourAnswerToTheQuestion