Информация об изменениях

Сообщение Re[10]: Тенденции языков от 18.05.2015 9:04

Изменено 18.05.2015 9:05 AlexRK

Здравствуйте, MTD, Вы писали:

MTD>Здравствуйте, AlexRK, Вы писали:


ARK>>Ну вот примитивный пример:


ARK>>
ARK>>  class Test
ARK>>  {
ARK>>    private MyItem[] _myArray;

ARK>>    protected abstract void ProcessInternal(MyItem item);

ARK>>    public int  Process()
ARK>>    {
ARK>>      foreach (var item in _myArray)
ARK>>      {
ARK>>         if (ProcessInternal(item) != ERR_OK) return -1;   // error!
ARK>>      }

ARK>>      // здесь _myArray оказался в неизвестно каком состоянии
ARK>>    }
ARK>>


MTD>Отличный пример


Не совсем так:

  class Test
  {
    private MyItem[] _myArray;

    protected abstract void ProcessInternal(MyItem item) throws Error;  // видим возможность вылета и можем найти по Ctrl-F

    public int  Process() throws Error    // видим возможность вылета и можем найти по Ctrl-F
    {
      foreach (var item in _myArray)
      {
         try!(ProcessInternal(item));           // видим возможность вылета и можем найти по Ctrl-F
      }

      // здесь _myArray оказался в неизвестно каком состоянии
    }
Re[10]: Тенденции языков
Здравствуйте, MTD, Вы писали:

MTD>Здравствуйте, AlexRK, Вы писали:


ARK>>Ну вот примитивный пример:


ARK>>
ARK>>  class Test
ARK>>  {
ARK>>    private MyItem[] _myArray;

ARK>>    protected abstract void ProcessInternal(MyItem item);

ARK>>    public int  Process()
ARK>>    {
ARK>>      foreach (var item in _myArray)
ARK>>      {
ARK>>         if (ProcessInternal(item) != ERR_OK) return -1;   // error!
ARK>>      }

ARK>>      // здесь _myArray оказался в неизвестно каком состоянии
ARK>>    }
ARK>>


MTD>Отличный пример


Не совсем так:

  class Test
  {
    private MyItem[] _myArray;

    protected abstract void ProcessInternal(MyItem item) throws Error;  // видим возможность вылета и можем найти по Ctrl-F

    public void Process() throws Error    // видим возможность вылета и можем найти по Ctrl-F
    {
      foreach (var item in _myArray)
      {
         try!(ProcessInternal(item));           // видим возможность вылета и можем найти по Ctrl-F
      }

      // здесь _myArray оказался в неизвестно каком состоянии
    }