Section: Flow Control
try
and catch
statements are used for error handling
and control. A concept present in C++
, the try
and catch
statements are used with two statement blocks as follows
try statements_1 catch statements_2 end
The meaning of this construction is: try to execute statements_1
,
and if any errors occur during the execution, then execute the
code in statements_2
. An error can either be a FreeMat generated
error (such as a syntax error in the use of a built in function), or
an error raised with the error
command.
try
and catch
to check for failures in fopen
.
read_file.m function c = read_file(filename) try fp = fopen(filename,'r'); c = fgetline(fp); fclose(fp); catch c = ['could not open file because of error :' lasterr] end
Now we try it on an example file - first one that does not exist, and then on one that we create (so that we know it exists).
--> read_file('this_filename_is_invalid') In base(base) on line 0 In simkeys(built in) on line 0 In Eval(read_file('this_file...) on line 1 In read_file(read_file) on line 3 c = could not open file because of error :No such file or directory for fopen argument this_filename_is_invalid ans = could not open file because of error :No such file or directory for fopen argument this_filename_is_invalid --> fp = fopen('test_text.txt','w'); --> fprintf(fp,'a line of text '); --> fclose(fp); --> read_file('test_text.txt') ans = a line of text