Trong một số chức năng của tôi, tôi muốn chuyển đổi một số cảnh báo thành lỗi. Ví dụ, nếu tôi muốn ném ra một lỗi khi str2func
mang lại một cảnh báo MATLAB:str2func:invalidFunctionName
, tôi sẽ làm như sau:chuyển đổi cảnh báo thành lỗi trong MATLAB
invalid_func_id = 'MATLAB:str2func:invalidFunctionName';
%hide warning of interest
warning('off', invalid_func_id);
%this might yield the warning of interest
predicate_func_try = str2func(predicate_func);
[~, warn_id] = lastwarn;
assert(~strcmp(warn_id, invalid_func_id)...
, 'MyFunc:InvalidFunctionName'...
, 'The predicate function %s does not have a valid name'...
, predicate_func...
);
warning on all
này hoạt động tốt nếu tôi biết rằng một khối mã cụ thể cho một nhóm nhỏ các cảnh báo. Tuy nhiên nó là tiết và có lẽ không quy mô để khối mã lớn hơn. Có cách nào tốt hơn để làm điều này? Lý tưởng nhất là tôi sẽ muốn có một chức năng mà có thể biến một số cảnh báo lỗi trong một khối toàn bộ. Nó sẽ cho phép tôi sửa đổi ví dụ của mình thành:
warnings2errors('MATLAB:str2func:invalidFunctionName');
predicate_func_try = str2func(predicate_func);
warnings2errors('off');
Theo chủ đề này - http://www.mathworks.com/matlabcentral/newsreader/view_thread/158768 - theo cách của bạn là người duy nhất. –