¿Puedo devolver un error personalizado de JsonResult al método de error jQuery ajax?

¿Cómo puedo pasar información de error personalizada de un ASP.NET MVC3JsonResult método para elerror (osuccess ocomplete, si es necesario) función dejQuery.ajax()? Idealmente, me gustaría poder:

Todavía arroje el error en el servidor (esto se usa para iniciar sesión) Recupere información personalizada sobre el error en el cliente

Aquí hay una versión básica de mi código:

Controller JsonResult method
public JsonResult DoStuff(string argString)
{
    string errorInfo = "";

    try
    {
        DoOtherStuff(argString);
    }
    catch(Exception e)
    {
        errorInfo = "Failed to call DoOtherStuff()";
        //Edit HTTP Response here to include 'errorInfo' ?
        throw e;
    }

    return Json(true);
}
JavaScript
$.ajax({
    type: "POST",
    url: "../MyController/DoStuff",
    data: {argString: "arg string"},
    dataType: "json",
    traditional: true,
    success: function(data, statusCode, xhr){
        if (data === true)
            //Success handling
        else
            //Error handling here? But error still needs to be thrown on server...
    },
    error: function(xhr, errorType, exception) {
        //Here 'exception' is 'Internal Server Error'
        //Haven't had luck editing the Response on the server to pass something here
    }
});

Cosas que he probado (eso no funcionó):

Información de error de retorno decatch bloque Esto funciona, pero no se puede lanzar la excepciónEdición de respuesta HTTP encatch bloque Luego inspeccionadoxhr en el controlador de errores jQueryxhr.getResponseHeader(), etc.contenía la página de error predeterminada de ASP.NET, pero ninguna de mi información Creo que esto puede ser posible, ¿pero lo hice mal?

Respuestas a la pregunta(8)

Su respuesta a la pregunta