Панда Дзен
PZ: ты по исключениям try/catch можешь разъяснить?)
CryoZ: тебе надо открыть файл, считать из него инфу, что-то с ней сделать, записать инфу в другой файл, и продолжить выполнение программы
и ты забила на исключения
и тут внезапно при открытии выясняется что файла который ты пытаешься открыть - нет
или он настолько большой что не влазит в выделенную память
что сделает твоя программа? упадет с ошибкой в момент открытия файла
то есть фактически программа исполнена дальше, чем оператор открытия файла - не будет
если ты оборачиваешь в try - то трай ловит как раз такие исключения, которые не вписываются в течение программы. типа условий
чем оперируют условия? данными, переменными, ну чем-то, что используется в программе
ошибки файловой системы, памяти, да даже банальную ошибку открытия файла условие просто не поймает.
ну вот еще одна модель:
у тебя есть план уборки квартиры
четкий и расписанный по минутам
там есть условия - типа если нет воды - не моем пол
или там нет света - не пылесосим
или там веник пропал - не подметаем
или в комнате кто-то спит - в ней не убираемся и не включаем пылесос
это все для плана понятные условия
а вот например условие - в процессе уборки произошло землетрясение?
или ты приходишь домой - а дома нет
тут уже условия твоего плана не сработают. ибо землетрясение и пропажа всего дома - исключение. исключение из алгоритма
и чтобы ты не сидела в ступоре перед тем местом где был дом, не зная что делать дальше и как убираться в том, чего нет - и придумали трай-кэтч
запихаешь план уборки дома в трай. а в кэтч напишешь - пойти пожаловаться в милицию, а потом нажраться в баре - и нет больше ошибки в алгоритме
ну, что-то я расписался. надеюсь понятно объяснил

Обожаю подобные объяснения =)