Я думаю, что события могут быть брошены, но это некомпетентное кодирование, если вы действительно это делаете.
Позвольте мне объяснить. В C++ вы можете использовать любой тип. Вы можете бросить булевы. Вы можете бросить enum error_type
. Вы можете бросить std::exception
. И, конечно, вы можете бросить struct XEvent
.
Но вы, скорее всего, делаете что-то ужасно неправильно или ужасно сбиваете с толку (и, следовательно, ошибаетесь), если вы действительно это делаете.
Я все не перегружаю значения слов, чтобы избежать двусмысленности (там, где это не нужно).
Я думаю, что «бросать» обычно понимают, что подразумевают разворачивание стека вызовов (если у вас есть четко определенный стек, но я думаю, что он может быть распространен на односвязный список неограниченной степени, т. Е. дерево родительских указателей). Давайте придерживаться этого.
Слово «рейз» также используется для сигналов. Было бы неплохо, если бы можно было не использовать это для событий.
Я предпочитаю «срабатывать», когда происходит событие («только событие onMouseOver»), и, возможно, «было сигнализировано», когда слушатель событий уведомляет потребителя («событие XMouseMotionNotify было передано клиенту»).
Нет, их нельзя бросать, но, подобно гномам и хоббитам, их можно бросить. –