Как позволить Java обработать системные прерывания как Ctrl+C

Согласно это

... Помещенный просто существует различие между Ложными и Тупиковыми объектами, и RhinoMocks распознает, что разрешение нам тестам записи, которые лучше формулируют их цель.

Фиктивные объекты используются для определения ожиданий т.е.: В этом сценарии я ожидаю, что метод () будет назван с такой и такие параметры. Насмешки записывают и проверяют такие ожидания.

Тупики, с другой стороны, имейте различную цель: они не записывают или проверяют ожидания, а скорее позволяют нам “replace” поведение, состояние “fake”object для использования сценария тестирования...

8
задан dimo414 4 August 2009 в 20:28
поделиться

2 ответа

Возможно, вы захотите изучить крючки выключения .

Кроме того, это, вероятно, дубликат или почти дубликат предыдущего вопроса SO, заданного день или два назад :

Как я могу "перехватить" Ctrl + C в приложении CLI?

5
ответ дан 5 December 2019 в 21:20
поделиться

Единственный хороший способ справиться с этим - поставить метку времени в файле журнала и обновлять файл журнала новой меткой времени каждые несколько секунд. File.deleteOnExit поможет, но ни один метод не является надежным (что происходит, когда кто-то просто дергает за шнур питания?).

Если вы пишете метку времени, вы можете проверить действительную метку времени (недавно записанную) и перезаписать файл журнала если он слишком сильно устарел. Таким образом, устаревший файл блокировки не будет мешать пользователю.

2
ответ дан 5 December 2019 в 21:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: