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