首页 文章

Chicken Scheme中的错误处理

提问于
浏览
0

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

现在我这样做:

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

我应该打开时打开不正确(用netcat测试过) . 我如何理解条件 - 案例是否匹配错误 . 我正在尝试处理没有错误的情况,即连接成功 .

有更好的方法吗?我觉得我在思考它 .

1 回答

  • 2

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

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

    也就是说,给 condition-case 的表达式是"happy path"(就像Java中的try块) .

相关问题