我在图形文档中没有找到关于窗口关闭检测的详细信息。如何检测它,以便在关闭时触发一个操作?
谢谢。
Fatal error: exception Graphics.Graphic_failure("fatal I/O error")
try
(* Here goes the code opening and manipulating the window *)
with
| Graphic_failure("fatal I/O error") ->
(* Here goes the code handling the window being closed manually*)
测试程序(你需要运行ocamlc graphics.cma test.ml -o test
编译它):
open Graphics
let rec loop () = loop ()
let () =
(*
try
*)
Graphics.open_graph " 400x600";
loop ()
(*
with
| Graphic_failure("fatal I/O error") ->
print_string "Caught exception";
print_newline ()
*)
Graphic_failure("Xlib error: BadDrawable (invalid Pixmap or Window parameter)")
错误... 另外我的应用程序有一些图形但是由终端控制,类似于解释器,所以我没有事件循环。我仍然有一个命令循环,所以我可以在发送命令后捕获异常... 因此,一个临时解决方案是匹配Graphic_failure("fatal I/O error")
和Graphic_failure("Xlib error: BadDrawable (invalid Pixmap or Window parameter)")
,但是我怎么知道是否还有其他异常需要捕获呢? - Nicolas Scotto Di Pertotry match
将启动命令的代码(文本和图形)与上面的Graphic_failure
包围起来,但没有帮助。 我还尝试匹配Graphic_failure _
,但仍然没有帮助... - Nicolas Scotto Di Perto