При создании приложения .NET рекомендуется правильно обрабатывать ошибки времени выполнения и управлять ресурсами.
Как и в случае с управляемым кодом, любые ошибки, возникающие во время выполнения MATLAB® функция или во время преобразования данных сигнализируются стандартным исключением .NET.
Как и любое другое приложение .NET, приложение, вызывающее метод, сгенерированный MATLAB Compiler SDK™ product, может обрабатывать ошибки либо по:
Захват и обработка исключения локально
Позволяет вызывающему методу поймать его
Вот примеры для каждого способа обработки ошибок.
В 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.
The MWArray
класс предоставляет два метода удаления: Dispose
и статический метод DisposeArray
. The DisposeArray
метод является более общим в том, что он располагает либо одну MWArray
или массив массивов типа MWArray
.