Is there any way to manually make CH throw a specific error?

Something like this:
```sql
SELECT throwError(999);

Received exception from server (version 22.2.2):
Code: 999. DB::Exception: KEEPER_EXCEPTION ...
```

PS:
*Although there is a similar function (`throwIf`), it only returns code=395 (FUNCTION_THROW_IF_VALUE_IS_NON_ZERO).*

**Use case**

We're looking something like this so we can simulate errors and take relevant actions agains some errors.

{
private:
    static constexpr std::array<const char*, 3> optional_argument_names = {"fraction", "precision", "timezone"};
    static constexpr UInt8 DEFAULT_PRECISION = 3;
public:
    static constexpr auto name = "makeDateTime64";
    static FunctionPtr create(ContextPtr) { return std::make_shared<FunctionMakeDateTime64>(); }
    String getName() const override { return name; }
    DataTypePtr getReturnTypeImpl(const ColumnsWithTypeAndName & arguments) const override
    {
        checkRequiredArguments(arguments, optional_argument_names.size());
        if (arguments.size() >= argument_names.size() + 1)
        {
            const auto& fraction_argument = arguments[argument_names.size()];
            if (!isNumber(fraction_argument.type))
                throw Exception(ErrorCodes::ILLEGAL_TYPE_OF_ARGUMENT,
                    "Argument 'fraction' for function {} must be number", getName());
        }
        
        Int64 precision = DEFAULT_PRECISION;
        if (arguments.size() >= argument_names.size() + 2)
            precision = extractPrecision(arguments[argument_names.size() + 1]);
        
        std::string timezone;
        if (arguments.size() == argument_names.size() + 3)
            timezone = extractTimezone(arguments.back());
        return std::make_shared<DataTypeDateTime64>(precision, timezone);
    }
    ColumnPtr executeImpl(const ColumnsWithTypeAndName & arguments, const DataTypePtr &, size_t input_rows_count) const override