Возможно ли убрать стек вызовов из строки исключения? - PullRequest
0 голосов
/ 11 октября 2011

Исключения используются во всем компоненте, в котором я работаю, для обработки ошибок API:

catch (Exception ex)
{
    // ex.ToString() below may be something like "database is locked"
    string error = string.Format(
        "Error when trying to create a playlist: {0}", ex.ToString());
    throw new Exception(error);
}

В основном компонент нижнего уровня выдаст Exception с подробными сведениями об ошибке, и этобыть пойман на более высоком уровне с более общим и удобным сообщением об ошибке.

Когда мое клиентское приложение обрабатывает это приложение, оно вызывает ex.ToString(), чтобы получить полную строку ошибки, но это также включает вызовstack.

Error: exceptions.RuntimeError: Error when trying to create a playlist: 
System.Exception: database is locked
at <very large call stack here>

Есть ли простой способ предотвратить появление последнего раздела (т.е. at <very large call stack here>) в сообщении об ошибке, не анализируя строку?Это возвращается пользователю, и я хочу, чтобы ошибка была ориентирована на пользователя, а не на приложение.

1 Ответ

2 голосов
/ 11 октября 2011

Попробуйте использовать Exception.Message вместо Exception.ToString:

string message = string.Format(
    "Error when trying to create a playlist: {0}", ex.Message);
throw new YourException(message, ex);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...