No exemplo anterior, utilizamos o comando throw para lançar um erro 
                explicitamente. Em alguns momentos, o tratamento da exceção não pode ser tratada 
                em seu respectivo bloco catch. 
            
            
                Nesse caso, podemos relançar um erro para um escopo, acima do atual, utilizado 
                o mesmo comando throw. O uso da palavra new é necessário:
            
            Sintaxe
            
try
{
    //código
}
catch( err: any )
{
    throw err; //
}
            Exemplo 4
            function funcao1():void
{
    throw Error("erro desconhecido em funcao1"); //local original do erro
}
function funcao2():void
{
  try
  {
        funcao1();
  }
  catch(erro)
  {
      throw erro; //o erro não pode ser tratado aqui
  }  
}
function funcao3():void
{
  try
  {
      funcao2();
  }
  catch(erro)
  {
      console.log(erro.message); //tratamento do erro
  }  
}
funcao3();
            Saída
            
erro desconhecido em funcao1
            
                Com a abordagem acima recomendada, re-lançando um erro/exceção, as informações contidas no stack serão mantidas
                facilitando assim a análise do erro.