UNPKG

@intuitionrobotics/ts-common

Version:
90 lines 3 kB
/* * ts-common is the basic building blocks of our typescript projects * * Copyright (C) 2020 Intuition Robotics * * Licensed 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. */ /** * Created by IR on 3/16/17. */ // noinspection TypeScriptPreferShortImport import {} from "../utils/types.js"; export function isErrorOfType(e, _exceptionType) { if (!(e instanceof Error)) return; const _e = e; if (_e.isInstanceOf && _e.isInstanceOf(_exceptionType)) return e; } export class CustomException extends Error { exceptionType; isInstanceOf; cause; constructor(exceptionType, message, cause) { super(message); this.message = message; this.stack = (new Error(message)).stack; this.cause = cause instanceof Error ? cause : new Error(JSON.stringify(cause || message)); this.exceptionType = exceptionType.name; this.isInstanceOf = (_exceptionType) => { return this.exceptionType === _exceptionType.name; }; } } export class Exception extends CustomException { constructor(message, cause) { super(Exception, message, cause); } } export class BadImplementationException extends CustomException { constructor(message, cause) { super(BadImplementationException, message, cause); } } export class ImplementationMissingException extends CustomException { constructor(message, cause) { super(ImplementationMissingException, message, cause); } } export class MUSTNeverHappenException extends CustomException { constructor(message, cause) { super(MUSTNeverHappenException, message, cause); } } export class NotImplementedYetException extends CustomException { constructor(message, cause) { super(NotImplementedYetException, message, cause); } } export class ThisShouldNotHappenException extends CustomException { constructor(message, cause) { super(ThisShouldNotHappenException, message, cause); } } export class DontCallthisException extends CustomException { constructor(message, cause) { super(DontCallthisException, message, cause); } } export class WhoCallthisException extends CustomException { constructor(message, cause) { super(WhoCallthisException, message, cause); } } export class AssertionException extends CustomException { constructor(message, cause) { super(AssertionException, message, cause); } } //# sourceMappingURL=exceptions.js.map