powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / какого типа будет возвражена переменная (try catch)
8 сообщений из 8, страница 1 из 1
какого типа будет возвражена переменная (try catch)
    #36330851
Ymka2007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
есть механизм try-catch
Код: plaintext
1.
2.
3.
try {
}
Catch(ex) {
}
переменная "ex" , при ошибке, какого типа будет?
могу ли я ее подать на выход метода, который возвращает %Status?
...
Рейтинг: 0 / 0
какого типа будет возвражена переменная (try catch)
    #36330926
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ymka2007 , че в доку не смотрел?

Код: plaintext
1.
2.
3.
CATCH exceptionvar
{
   . . .
}
автор Arguments
exceptionvar
A local variable, used to receive the exception object reference from the THROW command or from the system runtime environment in the event of a system error. When a system error occurs, exceptionvar receives a reference to an object of type %Exception.SystemException. For further details, refer to the %Exception.AbstractException class in the Caché Class Reference.
The exceptionvar argument can optionally be enclosed with parentheses, thus: CATCH(var) { code block }. This parentheses syntax is provided for compatibility, and has no effect on functionality.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
TRY {
    SET total= 1234 
    WRITE !,"Throw an exception!"
    THROW ##class(%MyException).%New(total)
    WRITE !,"this should not display"
  }
  CATCH myvar {
      WRITE !,"this is the exception handler"
      WRITE !,"Error code=",myvar.Code
      WRITE !,"Error name=",myvar.Name
  }
...
Рейтинг: 0 / 0
какого типа будет возвражена переменная (try catch)
    #36330992
Ymka2007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
так смотрел
вопрос остался открытым и ты на него тоже не ответил
...
Рейтинг: 0 / 0
какого типа будет возвражена переменная (try catch)
    #36331021
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ymka2007ты на него тоже не ответил

Я на аглицком только несколько слов знаю...
...
Рейтинг: 0 / 0
какого типа будет возвражена переменная (try catch)
    #36331094
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я так понимаю, переменная в cath будет того же типа, что и в throw
Так что кидать эксепшен можно всем чем угодно. Даже числами или строками.
Я так думаю :-)
...
Рейтинг: 0 / 0
какого типа будет возвражена переменная (try catch)
    #36331132
Ymka2007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
мой метод, который содержит конструкцию try-catch, должен вернуть %Status
возвращаемое значение будет анализироваться: если все $$$OK, то работаем дальше, иначе нужно показать пользователю текст ошибки, чтобы попытаться быстро исправить косяк.
немного потестировав и сгенерив ошибку пришел к выводу, что:
%Exception.SystemException '= %Status
и сделал так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
method my() As %Status
{ 
 try { ... }
 Catch(ex) {  s sc=ex.AsStatus() }
 q:$$$ISERR(sc) sc
 ...
 q $$$OK
}
...
Рейтинг: 0 / 0
какого типа будет возвражена переменная (try catch)
    #36334695
neznau
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я обычно использую такую конструкцию (почти то же самое)

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Method a() As %Status
{
   s result=$$$OK
   try {
      //...
   }
   catch ex {
      s result=$$$NOTOK_":"_ex.AsSystemError()
   }
   quit result
}
...
Рейтинг: 0 / 0
какого типа будет возвражена переменная (try catch)
    #36334697
neznau
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в догонку

автор Ymka2007...%Exception.SystemException '= %Status...

это правильный вывод :)

%Status по факту число.
%Exception.SystemException - объект
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / какого типа будет возвражена переменная (try catch)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]