> 1 <

Автор Сообщение

Яков Замир Кацман (нью)

Members


Статус

22 сообщений

Где: Russia
Род занятий:
Возраст:

#7803   2017-11-19 17:57 GMT+3 часа(ов)      
(defun Divizor(x)
(handler-case ( / 10 x)
(error (c)
(format t "<Error Message> divizor by zero ~a ~%" x)
)
)
)
 
(progn
(Divizor 0)
(+ 1 2)
)

отредактировал(а) Яков Замир Кацман (нью): 2017-11-28 00:31 GMT+3 часа(ов)

skelter

Members


Статус

39 сообщений

Где: ---
Род занятий:
Возраст:

#7804   2017-11-20 05:10 GMT+3 часа(ов)      
Бросаться-то он сам бросается, а тут мы его, наоборот, ловим.

Коллега, а что у вас скобки живут такой активной самостоятельной жизнью?

Раз переменная c не используется, можно её пропустить: error () ...

Яков Замир Кацман (нью)

Members


Статус

22 сообщений

Где: Russia
Род занятий:
Возраст:

#7805   2017-11-20 15:45 GMT+3 часа(ов)      
Мне кажется что для шаблона, пусть лучше будет "с" (предполагается что потом вы будете ее анализировать).
Первый язык был Паскаль (очень-очень давно) Мне кажется, что Паскалевский синтаксис "скобок" самый прозрачный для примеров.

отредактировал(а) Яков Замир Кацман (нью): 2017-11-20 20:39 GMT+3 часа(ов)

Яков Замир Кацман (нью)

Members


Статус

22 сообщений

Где: Russia
Род занятий:
Возраст:

#7808   2017-11-28 00:13 GMT+3 часа(ов)      
Немного более интересный вариант. Теперь оно не "Бросается само" - исключение бросаем мы лично

 
;;[1]http://lispdoc.com/?q=assert
;;[2]https://rosettacode.org/wiki/Assertions
(defun forty-two(y)
(handler-case (let ((x y))(assert (and (integerp x) (= 43 x)) (y)))
(error (c)
(format t "<Error Message> check up into assert case ~a ~%" y)
)
)
)
 
(progn
(forty-two 42)
(format t "After assertion continue calc operation (1 + 2) = ~a ~%" (+ 1 2))
)
 

отредактировал(а) Яков Замир Кацман (нью): 2017-11-28 00:56 GMT+3 часа(ов)
> 1 <


Онлайн :

0 пользователь(ей), 29 гость(ей) :




Реклама на сайте: