Имеется статический метод void M(), вызов которого может выбрасывать исключения Exception и ArgumentException. Объявить статический метод int M1(), который вызывает метод М() и возвращает 1, если метод M() выбросит ArgumentException, возвращает 2, если метод M() выбросит Exception, и возвращает 0, если метод M() ничего не выбросит.
Ответы на вопрос
Ответ:
ArgumentException вызывается при вызове метода и по крайней мере один из переданных аргументов не соответствует спецификации параметра вызываемого метода. Свойство ParamName идентифицирует недопустимый аргумент.
Чаще всего ArgumentException вызывается средой CLR или другой библиотекой классов и указывает на ошибку разработчика. При вызове ArgumentException из кода следует убедиться, что свойство Message исключения содержит осмысленное сообщение об ошибке, описывающее недопустимый аргумент и ожидаемый диапазон значений для аргумента.
Основные производные классы ArgumentException ArgumentNullException и ArgumentOutOfRangeException. Эти производные классы следует использовать вместо ArgumentException, за исключением случаев, когда ни один из производных классов является приемлемым. Например, исключения должны создаваться следующим образом:
ArgumentNullException, когда null передается в метод, который не принимает его в качестве допустимого аргумента.
ArgumentOutOfRangeException, если значение аргумента находится вне диапазона допустимых значений; Например, если значение "46" передается в качестве аргумента month во время создания DateTime.
Объяснение:
using System;
class H {
static void M()
{
Console.WriteLine("method");
}
static int M1()
{
try
{
M();
Console.WriteLine(0);
return 0;
}
catch (ArgumentException ex)
{
Console.WriteLine(1);
return 1;
}
catch (Exception ex)
{
Console.WriteLine(2);
return 2;
}
}
static void Main() {
int a = M1();
Console.WriteLine(a);
}
}
