Мысли об использовании пробуждения и брось для обычного потока [закрыто]C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Мысли об использовании пробуждения и брось для обычного потока [закрыто]

Сообщение Anonymous »

Моя проблема: у меня есть два формата адреса, содержащихся в виде строки в списке в файле .yaml. Сначала я пробую первый формат, но если в этом формате это не в этом формате, я продолжаю анализировать со второго формата. В итоге я использовал попытку. В блоке Try я пробую первый формат. В блоке улова я пробую второе. Есть две причины: это синтецически вводит в заблуждение. Это больно. Я это понимаю. Я пытался использовать DO, пока цикл, чтобы решить это. Но это также синтаксически вводит в заблуждение: нет петли. Я пробовал заявления о том, как выборочно. Но, как и каждый хорошо подготовленный программист, я боюсь, когда вижу это. Чтобы прояснить, я создал исключение без -Exception в имени. Он используется как какое -то заявление о перерыве. Я назвал это Break .
Мой код выглядит следующим образом:

Код: Выделить всё

class Break : Exception {}

public class Engine
{
List ParseYAML(String text)
{
// Deserialize text ito class DataYAML
List dataYAML = YAMLSerializer.Deserialize(text);

List listBuildings;
// Convert to Building objects
foreach (var itemYAML in dataYAML)
{
Building building = new Building();
// Some attributes need extra parsing
// ...
// Parse address
try
{
// first parsing method
// ...
if (condition1) throw new Break();
// ...
foreach (var it in list)
{
// ...
if (condition2) throw new Break();
// ...
}
// ...
}
catch (Break x)
{
// second parsing method
//...
}

listBuildings.Add(building);
}

return listBuildings;
}
}

Мои вопросы:
в этом случае является хорошей идеей использовать Try-Catch и исключения для нормального управления потоком?>

Подробнее здесь: https://stackoverflow.com/questions/795 ... ormal-flow
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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