Как получить точную точку, где возникло исключение? - PullRequest
0 голосов
/ 27 июля 2011

Я разрабатываю проект, в котором я поместил блок кода в блок try.

Блок содержит 5 операторов для назначения изображения для imageView (у меня есть 5 изображений, к которым я добавляю изображения из папки ресурсов). Поток переходит к блоку перехвата, если в папке ресурсов нет изображения.

Я хотел знать точное утверждение из пяти, где возникает исключение, чтобы я мог присвоить изображению nil.

@try {
    if (indexPath.row%2==0) {
        cell.bookImageView1.image=[[KitabooBookListDataSource sharedDataSource] bookAtIndex:(indexPath.row*4)+0].titleImage;
        cell.bookImageView2.image=[[KitabooBookListDataSource sharedDataSource] bookAtIndex:(indexPath.row*4)+1].titleImage;
        cell.bookImageView3.image=[[KitabooBookListDataSource sharedDataSource] bookAtIndex:(indexPath.row*4)+2].titleImage;
        cell.bookImageView4.image=[[KitabooBookListDataSource sharedDataSource] bookAtIndex:(indexPath.row*4)+3].titleImage;
        cell.bookImageView5.image=nil;
    }else {
        cell.bookImageView1.image=nil;
        cell.bookImageView2.image=[[KitabooBookListDataSource sharedDataSource] bookAtIndex:(indexPath.row*4)+0].titleImage;
        cell.bookImageView3.image=[[KitabooBookListDataSource sharedDataSource] bookAtIndex:(indexPath.row*4)+1].titleImage;
        cell.bookImageView4.image=[[KitabooBookListDataSource sharedDataSource] bookAtIndex:(indexPath.row*4)+2].titleImage;
        cell.bookImageView5.image=[[KitabooBookListDataSource sharedDataSource] bookAtIndex:(indexPath.row*4)+3].titleImage;
    }
}


@catch (NSException *e) {
    NSLog(@"catch block");
    NSLog(@"array of exception %@",[e callStackReturnAddresses]);
    //NSMutableArray *catchArray=[[NSMutableArray alloc] initWithArray:[e callStackReturnAddresses]];
    //[[catchArray lastObject] ]=nil;
}

1 Ответ

2 голосов
/ 27 июля 2011

Как правило, вы не должны использовать исключения для выполнения программы. Вместо этого измените ваш метод bookAtIndex:, чтобы он возвращал nil, когда индекс выходит за пределы ... или, что еще лучше, вам нужно просто проверить количество книг, прежде чем пытаться получить каждую из них.

Прочитайте мой ответ на этот вопрос , чтобы узнать больше об исключениях и обработке исключений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...