- re-throwing can be dynamic too depending on if at least
    //   one finalizer returns a non-void result

    try
    {
        result = Original(/* ... arguments ... */);

        // finalizers get all the arguments a prefix could get too
        // plus one new one: &quot;Exception __exception&quot;
        // they SHOULD NOT edit the passed exception but instead
        // signal to Harmony that they change it by returning it

        // here finalizers are called without try-catch so they 