0

나는 경우에 패턴에 노력했습니다 잘못된 디렉토리에서 사용자 유형 :Unix_error (Ocaml)에 패턴 일치를 시도 할 때 오류가 발생합니까?

# let dir = Unix.opendir "adfalf";; 
Exception: Unix.Unix_error (Unix.ENOENT, "opendir", "adfalf"). 

내 기능은 다음과 같다 :

내가 컴파일 오류가 계속 제외
let files_of_dir d = 
    try 
     let dir = Unix.opendir d in 
     ... 
    with 
     Unix_error (uerr, ucommand, dir) -> raise Not_found 

:

Error: This variant pattern is expected to have type exn 
     The constructor Unix_error does not belong to type exn 

내가 패턴 일치가 잘못되어있는 것을 이해하지 못합니다. 누군가가 이것에 나를 도울 수 있던 경우에 그것은 중대하게 평가 될 것입니다!


일부 기타 참고 사항 : 나는 터미널에서 다음 명령을 사용하여 내 코드를 컴파일했습니다

는 :

ocamlbuild filename.byte 

답변

1

당신은 Unix.Unix_error 아니라 Unix_error 말을해야합니다. 이것이 귀하의 견본 세션에 나타나는 것임을 유의하십시오.

+0

감사합니다! 이것은 나를 꽤 두통 두통으로 구해줬다. – 14wml

관련 문제