Здравствуйте, 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 оказался в неизвестно каком состоянии
}