При создавании приложения.NET это - хорошая практика, чтобы правильно обработать ошибки времени выполнения и управлять ресурсами.
Как с управляемым кодом, любые ошибки, которые происходят во время выполнения функции MATLAB® или во время преобразования данных, сообщены стандартным исключением.NET.
Как любое другое приложение.NET, приложение, которое вызывает метод, сгенерированный продуктом MATLAB Compiler SDK™, может обработать ошибки также:
Ловля и обрабатывание исключения локально
Разрешение вызывающего метода отловить его
Вот примеры для каждого способа ошибок из-за неправильного обращения.
В примере GetPrimes
сам метод обрабатывает исключение.
public double[] GetPrimes(int n) { MWArray primes= null; MyPrimesClass myPrimesClass= null; try { myPrimesClass= new MyPrimesClass(); primes= myPrimesClass.myprimes((double)n); return (double[])(MWNumericArray)primes). ToVector(MWArrayComponent.Real); } catch (Exception ex) { Console.WriteLine("Exception: {0}", ex); return new double[0]; } }
В следующем примере метод, который вызывает myprimes
, не отлавливает исключение. Вместо этого его вызывающий метод (то есть, метод, который вызывает метод, который вызывает myprimes
) обрабатывает исключение.
public double[] GetPrimes(int n) { MWArray primes= null; MyPrimesClass myPrimesClass= null; try { myPrimesClass= new MyPrimesClass(); primes= myPrimesClass.myprimes((double)n); return (double[])(MWNumericArray)primes). ToVector(MWArrayComponent.Real); } catch (Exception e) { throw; } }
Обычно метод Dispose
называется от раздела finally
в try
-finally
блоком, как вы видите в следующем примере:
try { /* Allocate a huge array */ MWNumericArray array = new MWNumericArray(1000,1000); . . (use the array) . } finally { /* Explicitly dispose of the managed array and its */ /* native resources */ if (null != array) { array.Dispose(); } }
Оператор array.Dispose()
освобождает память, выделенную и управляемой оболочкой и нативным массивом MATLAB.
Класс MWArray
предоставляет два метода распоряжения: Dispose
и статический метод DisposeArray
. Метод DisposeArray
является более общим в этом, он избавляется или от одного MWArray
или от массива массивов типа MWArray
.