spectre.console/docs/input/exceptions.md
Phil Scott 223642b797
Add blog to docs (#484)
* Adding social card infrastructure
* Upgrades doc project to .NET 6
* Adds Playwright
* Changes the console to a web project for Playwright
* Adds social card template
* Added blog content
* Parallelized social image processing
* Updating CI to use .NET 6 for docs build
2021-07-15 19:53:01 +02:00

1.8 KiB

Title: Exceptions Order: 40 Description: "Exceptions aren't always readable when viewed in the terminal. You can make exception a bit more readable by using the WriteException method." Highlights: - Color coded output. - Shorten long identifiers and paths.

Exceptions aren't always readable when viewed in the terminal.
You can make exception a bit more readable by using the WriteException method.

AnsiConsole.WriteException(ex);

Shortening parts

You can also shorten specific parts of the exception to make it even more readable, and make paths clickable hyperlinks. Whether or not the hyperlinks are clickable is up to the terminal.

AnsiConsole.WriteException(ex, 
    ExceptionFormats.ShortenPaths | ExceptionFormats.ShortenTypes |
    ExceptionFormats.ShortenMethods | ExceptionFormats.ShowLinks);

Customizing exception output

In addition to shorten specific part of the exception, you can also override the default styling.

AnsiConsole.WriteException(ex, new ExceptionSettings
{
    Format = ExceptionFormats.ShortenEverything | ExceptionFormats.ShowLinks,
    Style = new ExceptionStyle
    {
        Exception = new Style().Foreground(Color.Grey),
        Message = new Style().Foreground(Color.White),
        NonEmphasized = new Style().Foreground(Color.Cornsilk1),
        Parenthesis = new Style().Foreground(Color.Cornsilk1),
        Method = new Style().Foreground(Color.Red),
        ParameterName = new Style().Foreground(Color.Cornsilk1),
        ParameterType = new Style().Foreground(Color.Red),
        Path = new Style().Foreground(Color.Red),
        LineNumber = new Style().Foreground(Color.Cornsilk1),
    }
});