为什么Matlab`fopen`没有抛出异常?

时间:2016-10-21 09:21:51

标签: matlab file exception fopen

为什么fopen在文件名或路径不存在时抛出异常?

in_path = 'pqlcnaf8765mlr9f6lf2;

try
    in_file_id = fopen(in_path,'r');
catch 
    error('Problem with input file.')    
end

in_path不存在。该调用返回in_file_id,其值为-1,但不会抛出任何异常。有人知道为什么吗?

1 个答案:

答案 0 :(得分:3)

它没有设计为抛出异常,正如文档所述:

$count++;

您需要设计代码以抛出所需的异常:

If fopen cannot open the file, it returns -1.

修改

Re:第一条评论中的链接 - >展示了如何处理in_path = 'pqlcnaf8765mlr9f6lf2; in_file_id = fopen(in_path,'r'); if in_file_id == -1 error('Problem with input file.') end 块。由于try catch行而导致错误。您可以在代码中执行相同的操作:

fread

说过我不认为链接是如何处理不存在的文件的好例子。