【问题标题】:Error handling in Chicken Scheme鸡计划中的错误处理
【发布时间】:2023-04-09 17:30:02
【问题描述】:

我正在制作一个基本的端口扫描器。 当我连接到关闭时,我正在尝试打印“关闭” 端口并在我连接到开放端口时“打开”。

现在我正在这样做:

(condition-case (tcp-connect (list-ref host 0) port)
    [(exn) (print "closed")]
    ['nil (print "open")]))

我的 open 在应该打印的时候没有正确打印(已经用 netcat 测试过)。 我如何理解条件情况是它匹配错误。我正在尝试处理没有错误的情况,即连接成功。

有没有更好的方法来解决这个问题?我觉得我想多了。

【问题讨论】:

    标签: scheme chicken-scheme


    【解决方案1】:

    不熟悉鸡肉我希望这样的东西是你想要的:

    (condition-case 
        (begin (tcp-connect (list-ref host 0) port)
               (print "open"))
        [(exn) (print "closed")])
    

    也就是说,condition-case 的表达式是“快乐路径”(就像 Java 中的 try 块)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多