Есть в mdNavigator.js примерно такой код
Код:
function КомандыCaptureIntoCfgStore(Кнопка){
doAction(function(mdObj){
try {
var cfgStore = stdlib.require("CfgStore.js");
cfgStore.CaptureIntoCfgStore(mdObj);
} catch (e){
Message(""+e.description())
}
});
}
В stdlib.require() есть вот такой код:
Код:
if (!isFullPath) {
var f = v8New("Файл", env.pathes.addins + "Libs\\" + filename);
if (!f.Существует() || !f.ЭтоФайл()) {
Message("require: Не найден скрипт " + filename);
throw "require: Не найден скрипт " + filename;
}
fullPath = f.ПолноеИмя;
}
Так вот CfgStore.js у меня конечно же нет, поэтому выполняется
Код:
throw "require: Не найден скрипт " + filename;
, но catch в mdNavigator.js не ловит этот throw и соответственно выпадает в ошибку
Код:
Ошибка выполнения Microsoft JScript: Исключение брошено и не поймано
При этом вот такой код, вызванный из immediate.js, работает:
Код:
function test(filename, scriptCaller, strict) {
var fullPath = filename;
var isFullPath = fullPath.match(/^(\w\:|\\\\)/);
if (!isFullPath) {
var f = v8New("Файл", env.pathes.addins + "Libs\\" + filename);
if (!f.Существует() || !f.ЭтоФайл()) {
Message("require: Не найден скрипт " + filename);
throw "require: Не найден скрипт " + filename;
}
fullPath = f.ПолноеИмя;
}
}
try {
test('qwer');
} catch(e) {
Message(e);
}