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 не реализован
См. также: