2013-02-13 2 views
1

У меня есть тестовый скрипт, который я запускаю, который генерирует некоторые ошибки, показанные ниже, я ожидаю эти ошибки. В любом случае, я могу помешать им показывать на экране? Я используюскрыть сообщения об ошибках в сценарии dcl

$ write sys$output 

для отображения, если ожидается ожидаемая ошибка.

Я пытался использовать

$ DEFINE SYS$ERROR ERROR.LOG 

но затем изменил весь мой журнал вывода ошибок на это, если это правильный способ справиться с этим я могу сбросить это в конце моего сценария какого-то образом?

[пример ошибки]

%DCL-E-OPENIN, error opening TEST$DISK:[AAA]NOTTHERE.TXT; as input 
-RMS-E-FNF, file not found 
%DCL-E-OPENIN, error opening TEST$DISK:[AAA]NOTTHERE.TXT; as input 
-RMS-E-FNF, file not found 
%DCL-W-UNDFIL, file has not been opened by DCL - check logical name 
+0

Ваш команда 'Define', Является ли это в вашем сценарии или вы ввели его на DCL подскажете? – Saju

+0

Это внутри скрипта, похоже, что я продолжал использовать error.log, пока не сделал выход, и снова войдите в систему. – user1943219

+2

Вы пробовали 'set message/nofacility/noseverity/noidentification/notext'? Если это сработает для вас, вы можете использовать 'f $ environment (« message »)', чтобы получить текущие настройки, чтобы они могли быть восстановлены до выхода. – HABO

ответ

1

Чтобы подавить сообщение об ошибке внутри сценария. попробуйте эту команду

$ DEFINE/USER SYS$ERROR NL: 

NL: является нулевым устройством, так что вы не видите никаких сообщений об ошибках, отображаемые на терминале.

удачи

4

DEFINE/USER создает логическое имя, которое исчезает, когда следующие выходы изображения. Итак, если вы используете это непосредственно перед командой только для защиты этой команды, то хорошо. В противном случае я бы предпочел SET MESSAGE для управления выходом.

И, конечно, yoy хочет захватить $ STATUS и проверить его после команды для успеха или ожидаемой ошибки, сообщая о любой неожиданной ошибке.

Лучше все еще ... если вы ожидаете определенных условий ошибки, , то почему бы не проверить их? Например:

$ file = F$SEARCH("TEST$DISK:[AAA]NOTTHERE.TXT") 
$ IF file.NES."" THEN TYPE 'file' 

Cheers, Hein

Смежные вопросы