pyt*_*lus 2 java unix jline sigint shutdown-hook
我很难理解如何在 jline2 中处理CTRL+ C。我发现consoleReader.readline如果handleUserInterrupt设置为true就会抛出异常。但是我想知道在抛出这个异常之前,CTRL+C是如何被捕获和解释的(而不是退出程序)?
UserInterruptException将仅从其中一种ConsoleReader.readLine方法中抛出,并且仅在用户按下CTRL+C并handleUserInterrupt设置为 true(通过调用consoleReader.setHandleUserInterrupt(true))时抛出。
只有当 的终端ConsoleReader是UnixTerminal(UNIX 平台的默认终端)的一个实例时,它的disableInterruptCharacter方法才会在readLine被调用时被调用。此方法通过对系统执行适当的命令(使用)来禁用CTRL+的默认行为C(通常会导致 JVM 退出stty)。在readLine方法返回之前,它会调用enableInterruptCharacter终端的方法,从而启用CTRL+的默认行为C。
这意味着CTRL+的默认行为C仅在readLine方法执行时被禁用。
| 归档时间: |
|
| 查看次数: |
631 次 |
| 最近记录: |