# Try/Catch

### Basic example catching any errors:

    xquery version "3.0";

        let $x := "Hello"
        return
        try {
            $x cast as xs:integer
        } catch * {
            <error>Caught error {$err:code}: {$err:description}</error>
            }

### Generating your own errors:

    xquery version "3.0";

    declare namespace app="http://exist-db.org/myapp";

    declare variable $app:ERROR := xs:QName("app:error");

    try {
        error($app:ERROR, "Ooops", "any data")
    } catch app:error {
        <error>Caught error {$err:code}: {$err:description}. Data: {$err:value}.</error>
    }