При создавании приложения.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
.