blob: 5b89a47699d913de7b64865466fd52eb20999522 [file] [log] [blame]
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
class ForyError(Exception):
pass
class ForyOutOfMemoryError(ForyError):
pass
class ForyOutOfBoundError(ForyError):
pass
class ForyKeyError(ForyError):
pass
class ForyTypeError(ForyError):
pass
class ForyInvalidError(ForyError):
pass
class ForyIOError(ForyError):
pass
class ForyUnknownError(ForyError):
pass
class ForyEncodeError(ForyError):
pass
class ForyInvalidDataError(ForyError):
pass
class ForyInvalidRefError(ForyError):
pass
class ForyUnknownEnumError(ForyError):
pass
class ForyEncodingError(ForyError):
pass
class ForyDepthExceedError(ForyError):
pass
class ForyUnsupportedError(ForyError):
pass
class ForyNotAllowedError(ForyError):
pass
class ForyStructVersionMismatchError(ForyError):
pass
class ForyTypeMismatchError(ForyError):
pass
class ForyBufferOutOfBoundError(ForyError):
pass
class TypeNotCompatibleError(ForyError):
pass
class TypeUnregisteredError(ForyError):
pass
class CompileError(ForyError):
pass
_ERROR_CODE_TO_EXCEPTION = {
1: ForyOutOfMemoryError,
2: ForyOutOfBoundError,
3: ForyKeyError,
4: ForyTypeError,
5: ForyInvalidError,
6: ForyIOError,
7: ForyUnknownError,
8: ForyEncodeError,
9: ForyInvalidDataError,
10: ForyInvalidRefError,
11: ForyUnknownEnumError,
12: ForyEncodingError,
13: ForyDepthExceedError,
14: ForyUnsupportedError,
15: ForyNotAllowedError,
16: ForyStructVersionMismatchError,
17: ForyTypeMismatchError,
18: ForyBufferOutOfBoundError,
}
def raise_fory_error(code, message):
if isinstance(message, bytes):
message = message.decode("utf-8", "replace")
exc_cls = _ERROR_CODE_TO_EXCEPTION.get(int(code), ForyError)
raise exc_cls(message)