Не могу перехватить NullReferenceException [дубликат]C#

Место общения программистов C#
Ответить
Anonymous
 Не могу перехватить NullReferenceException [дубликат]

Сообщение Anonymous »

Первое сообщение здесь, извините, если я неправильно понял некоторые тонкости. Я пытаюсь поймать исключение, когда пользователь вводит недопустимого (несуществующего) сотрудника. Я пробовал много разных вариантов, но ошибка никогда не возникала. Вместо этого код просто завершается, в этом случае он выпадет после следующих строк:

MyPostSalary = Convert.ToDouble(Console.ReadLine());
Console.WriteLine();


Может ли кто-нибудь увидеть, что я делаю неправильно?

Полный код:

Console.Write("Employee ID: ");
myEID = Console.ReadLine();

try
{
Console.Write("Post ID: ");
myPID = Console.ReadLine();

if ((myEmployees[myEID] is MonthlyPaidEmployee) || (myEmployees[myEID] isWeeklyPaidEmployee))
{

Console.Write("Post Name: ");
MyPostName = Console.ReadLine();
Console.Write("Post Start Date: ");
MyPostStartDate = Convert.ToDateTime(Console.ReadLine());
Console.Write("Post End Date: ");
MyPostEndDate = Convert.ToDateTime(Console.ReadLine());
Console.Write("Post Salary: ");
MyPostSalary = Convert.ToDouble(Console.ReadLine());
Console.WriteLine();

myPost = new Post(myPID, MyPostName, MyPostStartDate, MyPostEndDate, MyPostSalary);

if (myEmployees[myEID] is MonthlyPaidEmployee)
{
myMonthlyEmp = (MonthlyPaidEmployee)myEmployees[myEID];
myMonthlyEmp.PostHistory.Add(myPID, myPost);
}

if (myEmployees[myEID] is WeeklyPaidEmployee)
{
myWeeklyEmp = (WeeklyPaidEmployee)myEmployees[myEID];
myWeeklyEmp.WeeklyPaidEmployeePostHistory.Add(myPID, myPost);
}

}

}
catch (NullReferenceException ex)
{

Console.WriteLine("Employee ID does not exist.");
Console.WriteLine(ex.Message);
Console.WriteLine();
Console.WriteLine("Press any key to continue");
Console.ReadLine();

}


Подробнее здесь: https://stackoverflow.com/questions/137 ... eexception
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»