InterfaceNotImpException(message: String, self: Object);
message. Сообщение, передаваемое исключению. Необязательный параметр, по умолчанию значение не определено;
self. Источник исключения. Необязательный параметр, по умолчанию значение не определено.
Метод InterfaceNotImpException возвращает форматированное сообщение об исключении InterfaceNotImpException.
Метод возвращает значение типа String в следующем формате: «InterfaceNotImpException. Source: [Источник исключения] Message: [Передаваемое сообщение]».
Исключение InterfaceNotImpException используется, если объект не реализует интерфейс.
Для выполнения примера необходимо наличие на html-странице ссылки на файл сценария PP.js. Создадим новое пространство имён, интерфейс, класс, реализующий данный интерфейс, но метод, определённый в интерфейсе, реализовывать не будем:
// Определим новое пространство имен внутри PP PP.ArithmeticNamespace = {}; PP.initNamespace(PP.ArithmeticNamespace, "PP.ArithmeticNamespace"); // В созданном пространстве имен определим интерфейс, но без реализации (PP.ArithmeticNamespace.OperationInterface = function () { var operationInterface = PP.ArithmeticNamespace.OperationInterface; PP.initInterface(operationInterface, "OperationInterface"); operationInterface.calc = PP.ClassMembers.Method; })(); /* Создадим класс Calculator, наследуемый от класса PP.Object и реализующий интерфейс PP.ArithmeticNamespace.OperationInterface */ PP.ArithmeticNamespace.Calculator = function (settings) { PP.ArithmeticNamespace.Calculator.base.constructor.call(this, settings); }; PP.initClass(PP.ArithmeticNamespace.Calculator, PP.Object, "PP.ArithmeticNamespace.Calculator", PP.ArithmeticNamespace.OperationInterface); // Создадим экземпляр класса PP.Calculator var calculator = new PP.ArithmeticNamespace.Calculator(); /* Определим, реализует ли класс PP.ArithmeticNamespace.Calculator интерфейс PP.ArithmeticNamespace.OperationInterface */ var isInterfaceOf = PP.isInterfaceOf(calculator, PP.ArithmeticNamespace.OperationInterface, false); if (isInterfaceOf) { console.log("Интерфейс PP.ArithmeticNamespace.OperationInterface не реализован"); } else { var msg = "Интерфейс PP.ArithmeticNamespace.OperationInterface не реализован"; // Получим сообщение об ошибке var exception = PP.InterfaceNotImpException(msg, calculator); console.log(exception); };
В результате выполнения примера было создано пространство имён ArithmeticNamespace, интерфейс OperationInterface и реализующий его класс Calculator. Поскольку класс не реализует метод calc, определённый в интерфейсе, то в консоли браузера было выведено сообщение об ошибке:
InterfaceNotImpException. Source: Calculator Message: Интерфейс PP.ArithmeticNamespace.OperationInterface не реализован
См. также: