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.

{
protected:
    static constexpr std::array<const char*, 6> argument_names = {"year", "month", "day", "hour", "minute", "second"};
public:
    bool isVariadic() const override { return true; }
    size_t getNumberOfArguments() const override { return 0; }
protected:
    void checkRequiredArguments(const ColumnsWithTypeAndName & arguments, const size_t optional_argument_count) const
    {
        FunctionWithNumericParamsBase::checkRequiredArguments(arguments, argument_names, optional_argument_count);
    }
    void convertRequiredArguments(const ColumnsWithTypeAndName & arguments, Columns & converted_arguments) const
    {
        FunctionWithNumericParamsBase::convertRequiredArguments(arguments, argument_names, converted_arguments);
    }
    template <typename T>
    static Int64 dateTime(T year, T month, T day_of_month, T hour, T minute, T second, const DateLUTImpl & lut)
    {
        
        
        if (unlikely(std::isnan(year) || std::isnan(month) || std::isnan(day_of_month) ||
            std::isnan(hour) || std::isnan(minute) || std::isnan(second) ||
            year < DATE_LUT_MIN_YEAR || month < 1 || month > 12 || day_of_month < 1 || day_of_month > 31 ||
            hour < 0 || hour > 99 || minute < 0 || minute > 99 || second < 0 || second > 99))
            return minDateTime(lut);
        if (unlikely(year > DATE_LUT_MAX_YEAR))
            return maxDateTime(lut);
        return lut.makeDateTime(year, month, day_of_month, hour, minute, second);
    }
    static Int64 minDateTime(const DateLUTImpl & lut)