El if para controlar la excepción yo lo invertiría:
if (indexToRemove <= (TaskList.Count - 1) && indexToRemove >= 0)
De esta manera podemos poner las intrucciones para remover la tarea dentro del if y no dentro del else
El try catch quedaría de esta manera:
try
{
Console.WriteLine("Ingrese el número de la tarea a remover: ");
// Show current taks
ShowTaskList();
string userInput = Console.ReadLine();
// Remove one position
int indexToRemove = Convert.ToInt32(userInput) - 1;
if (indexToRemove <= (TaskList.Count - 1) && indexToRemove >= 0)
{
if (indexToRemove > -1 && TaskList.Count > 0)
{
string taskToRemove = TaskList[indexToRemove];
TaskList.RemoveAt(indexToRemove);
Console.WriteLine("Tarea " + taskToRemove + " eliminada");
}
}
else
{
Console.WriteLine("El valor que ha ingresado es invalido");
}
}
catch (Exception ex)
{
Console.WriteLine("Ha ocurrido un error al eliminar la tarea");
}
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?