```\nfunction recover(\n    bytes32 hash,\n    uint8 v,\n    bytes32 r,\n    bytes32 s\n) internal pure returns (address) {\n    (address recovered, RecoverError error) = tryRecover(hash, v, r, s);\n    _throwError(error);\n    return recovered;\n}\n```\n