Re: Разный код внутри одинаковых try/catch
От: nikov США http://www.linkedin.com/in/nikov
Дата: 06.10.09 12:24
Оценка: +1
Здравствуйте, Аноним, Вы писали:

А>Есть класс-обертка для веб-сервиса, в котором разные методы обращаются к разным методам веб-сервиса. Но этот код находится внутри совершенно одинаковых блоков try/catch, которые обрабатывают большой набор различных исключений. Можно ли как-то избежать копирования этих одинаковых блоков во все методы класса?


Было:

using System;
using System.Security;

class A
{
    public void MakeA()
    {
        try
        {
            Console.WriteLine("A");
        }
        catch(SecurityException) {}
        catch(ArgumentException) {}
    }

    public void MakeB()
    {
        try
        {
            Console.WriteLine("B");
        }
        catch(SecurityException) {}
        catch(ArgumentException) {}
    }

    public void MakeC()
    {
        try
        {
            Console.WriteLine("C");
        }
        catch(SecurityException) {}
        catch(ArgumentException) {}
    }

    public void MakeВ()
    {
        try
        {
            Console.WriteLine("В");
        }
        catch(SecurityException) {}
        catch(ArgumentException) {}
    }
}


Стало:

using System;
using System.Security;

class A
{
    public void MakeA()
    {
        Try(() => Console.WriteLine("A"));
    }

    public void MakeB()
    {
        Try(() => Console.WriteLine("B"));
    }

    public void MakeC()
    {
        Try(() => Console.WriteLine("C"));
    }

    public void MakeD()
    {
        Try(() => Console.WriteLine("D"));
    }

    public void Try(Action action)
    {
        try
        {
            action();
        }
        catch(SecurityException) {}
        catch(ArgumentException) {}
    }
}
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.