Обратная сила закона

Содержание

Комментарий к Ст. 54 КРФ

1. Правила, содержащиеся в комментируемой статье, возводят на конституционный уровень гуманные нормы о действии закона во времени, которые до этого содержались только в уголовном законодательстве, а с принятием в 1980 г. Основ законодательства СССР и союзных республик об административных правонарушениях появились и в этой отрасли законодательства.

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

В гражданском законодательстве вопросы обратной силы закона часто решаются во вводных законах к гражданским кодексам. Так было при введении в действие ГК РСФСР 1922 г. и двух последующих гражданских кодексов.

ФЗ от 30 ноября 1994 г. «О введении в действие части первой Гражданского кодекса Российской Федерации» (СЗ РФ. 1994. N 32. ст. 3302) также содержит ряд норм, касающихся обратной силы закона. В частности, в ст. 10 Закона содержится такое правило: «Установленные частью первой Кодекса сроки исковой давности применяются к тем искам, сроки предъявления которых, предусмотренные ранее действовавшим законодательством, не истекли до 1 января 1995 года», а в ст. 11 этого же Закона сказано: «Действие ст. 234 Кодекса (приобретательская давность) распространяется и на случаи, когда владение имуществом началось до 1 января 1995 года и продолжается в момент введения в действие части первой Кодекса».

Под законом, о котором говорится в комментируемой статье, имеется в виду федеральный закон, федеральный конституционный закон, а также закон субъекта Федерации. Применительно к уголовным и гражданским законам, в соответствии со ст. 71 Конституции, это могут быть законы, принятые только на федеральном уровне, а к законам о дисциплинарной и административной ответственности — также и на уровне законодательных органов субъектов Федерации (см. комм. к п. «о» ст. 71, п. «к» ст. 72).

Ответственность — это обязанность отвечать за противоправные действия (или бездействие), причинившие физический, материальный или моральный вред.

Комментируемая статья содержит требования, обязательные для всех отраслей права. Поэтому в тех случаях, когда соответствующий закон в необходимых случаях не регламентирует вопрос о времени его действия или отклоняется от требований конституционной нормы, она действует непосредственно.

Общим правилом для всех отраслей права является ответственность за совершенное правонарушение по закону, действующему в момент его совершения. Это значит, что закон принят в установленном порядке и вступил в законную силу. В соответствии с требованиями Конституции законы подлежат официальному опубликованию, а неопубликованные законы не применяются. Порядок опубликования и вступления в силу законов России определен ФЗ от 14 июня 1994 г. «О порядке опубликования и вступления в силу федеральных конституционных законов, федеральных законов, актов палат Федерального Собрания» (СЗ РФ. 1994. N 8. ст. 801).

Под законом, устанавливающим ответственность, понимается закон, которым вводится та или иная ответственность за правонарушение, до того не существовавшая.

Под законом, отягчающим ответственность, имеется в виду закон, устанавливающий более строгий вид ответственности (например, вместо административной — уголовную) либо более строгое наказание в рамках одного и того же вида ответственности (например, за нарушение трудовой дисциплины законом расширена возможность применения увольнения в качестве взыскания).

Под обратной силой закона следует понимать распространение нового закона на деяния, совершенные до его вступления в силу. Если закон обратной силы не имеет, это значит, что он не распространяется на деяния, совершенные до его вступления в силу. Комментируемые конституционные нормы носят общеобязательный характер и не допускают исключений. Это важно отметить, ибо в прошлом сплошь и рядом нарушались общепринятые принципы действия законов во времени. Это приводило к тому, что те или иные деяния объявлялись тяжкими преступлениями и им еще придавалась обратная сила.

Так, например, было с Постановлением Президиума ЦИК СССР от 21 ноября 1929 г. «Об объявлении вне закона должностных лиц — граждан Союза ССР за границей, перебежавших в лагерь врагов рабочего класса и крестьянства и отказывающихся вернуться в Союз ССР» (СЗ РФ. 1929. N 76. ст. 732). Этот Закон, известный как «Закон о невозвращенцах», рассматривал лиц, отказавшихся вернуться в СССР, как перебежчиков в лагерь врагов, квалифицировал их действия как измену, влекущую объявление вне закона, последствием чего были конфискация всего имущества осужденного и расстрел его через 24 часа после удостоверения личности. В ст. 6 было сказано: «Настоящий закон имеет обратную силу».

В начале 60-х годов недоумение юридической общественности вызвало придание уголовному закону обратной силы по делу о валютных операциях, совершенных Рокотовым и Файбишенко. В отношении них был применен закон, по которому за валютные операции допускалась смертная казнь, и они были расстреляны, хотя в момент совершения преступления санкция закона не содержала наказания ни в виде исключительной меры наказания — смертной казни, ни даже в виде предельного срока лишения свободы, установленного законом.

Положения, содержащиеся в ч. 1 комментируемой статьи, изложены в УК и КоАП в формулировках, отражающих специфические особенности этих отраслей законодательства. Так, в ч. 2 ст. 10 УК записано: «Уголовный закон, устанавливающий преступность деяния, или усиливающий наказание, или иным образом ухудшающий положение лица, обратной силы не имеет», а в ч. 2 ст. 1.7 КоАП сказано: «Закон, устанавливающий или отягчающий административную ответственность за административное правонарушение либо иным образом ухудшающий положение лица, обратной силы не имеет».

Поскольку уголовное наказание может применяться только к лицам, совершившим преступление, в качестве закона, устанавливающего наказуемость деяния, может рассматриваться закон, объявляющий то или иное противоправное деяние преступным и устанавливающий за его совершение уголовное наказание, основное либо основное и дополнительное, из числа предусмотренных в УК. Это может быть дополнением Особенной части УК путем включения в нее новой статьи или включения в уже имеющуюся статью нового состава преступления, ранее не рассматривавшегося в качестве преступления, в том числе под каким бы то ни было иным наименованием. Точно так же актом, устанавливающим ответственность за административное правонарушение, является как новый акт, предусматривающий новый административный проступок и взыскание за него, так и у действующий акт, дополняющий включенные в него проступки новыми.

Закон может рассматриваться как усиливающий наказание, если в нем увеличивается максимальная или минимальная санкция, вводится более строгое основное наказание, вводится дополнительное наказание, преступлению дается иная квалификация, хотя и не влекущая изменение уголовных наказаний, но приводящая к иным отрицательным уголовно-правовым последствиям, например к признанию преступления тяжким, сокращению возможности условно-досрочного освобождения, что отягчает ответственность.

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

2. Положение, содержащееся в ч. 2 комментируемой статьи, распространяется на любые правонарушения. Ни одно из них не может рассматриваться в качестве такового, если об этом нет указания в законе. И ни одно лицо не может привлекаться к какой бы то ни было ответственности, если законом конкретно не определены признаки правонарушения и меры этой ответственности. Разумеется, при решении вопроса об ответственности должны соблюдаться и другие требования, а именно: наличие вины, достижение определенного возраста и др.

Рассматриваемая конституционная норма имеет принципиальное значение. Она полностью исключает возможность применения уголовного закона по аналогии, т.е. за деяние, не указанное в законе, но сходное с тем или иным преступлением, что допускалось уголовным законодательством, действовавшим до принятия УК РСФСР 1960 г. Комментируемая норма создает барьер на пути возможных нарушений прав и свобод человека и гражданина, четкую правовую базу для правоохранительных органов и судов, позволяя им избегать ошибок при решении вопросов ответственности за правонарушения.

Положения Конституции в силу ее ст. 15 имеют прямое действие, и во всех необходимых случаях конституционная норма применяется непосредственно. Последнее важно подчеркнуть и потому, что содержание комментируемой нормы вполне соответствует и даже превосходит требования норм международного права (ст. 11 Всеобщей декларации прав человека 1948 г. и ст. 15 Международного пакта о гражданских и политических правах 1966 г. См.: Международная защита прав и свобод человека: Сб. документов. M., 1990. С. 16, 39).

В ч. 1 ст. 15 названного Пакта содержится правило: «Никто не может быть признан виновным в совершении какого-либо уголовного преступления вследствие какого-либо действия или упущения, которое, согласно действовавшему в момент его совершения внутригосударственному законодательству или международному праву, не являлось уголовным преступлением… Если после совершения преступления законом устанавливается более легкое наказание, действие этого закона распространяется на данного преступника».

Сопоставление содержания приведенного текста из Международного пакта и комментируемой конституционной нормы показывает, что последняя касается не одной отрасли права, а носит всеобщий характер и касается различных форм ответственности: уголовной, административной, дисциплинарной, гражданско-правовой.

Комментируемое положение ч. 2 анализируемой статьи конкретизируется в отраслевом законодательстве.

Понятие «преступление», содержащееся в УК, указывает на то, что это виновно совершенное общественно опасное деяние, запрещенное данным Кодексом под угрозой наказания. В Особенной части УК составы преступлений содержат диспозицию, указывающую на конкретные признаки преступления, и санкцию, определяющую наказание за его совершение.

Закрепленное в ст. 2.1 КоАП понятие административного правонарушения в качестве признаков проступка наряду с противоправностью и виновностью также приводит указание в законе на административную ответственность. Для решения вопроса о применении положений об обратной силе закона должно быть установлено время совершения правонарушения. Временем совершения преступления в соответствии со ст. 9 УК признается совершение общественно опасного действия (бездействия) независимо от времени наступления последствий.

Момент совершения правонарушения определяется по документу, послужившему основанием для признания лица правонарушителем (приговор, постановление о наложении административного взыскания и др.). Для некоторых категорий правонарушений, например длящихся и продолжаемых преступлений, установление момента совершения преступления представляет определенные трудности, так как не всегда легко определить момент их окончания. В случае когда установлено, что деяние началось до, но продолжалось и после того, как оно стало рассматриваться законом в качестве правонарушения, за него может наступить ответственность, установленная этим законом.

Под устранением ответственности, о котором говорится в ч. 2 комментируемой статьи, понимается отмена или признание утратившим силу закона, который предусматривал ту или иную ответственность. Смягчение ответственности многообразно. Это может, например, выражаться в замене уголовной ответственности ответственностью административной или дисциплинарной, а также — что чаще всего встречается — в смягчении в рамках одной и той же отрасли законодательства, прежде всего уголовного и об административной ответственности.

С момента вступления в силу закона, устраняющего противоправность деяния, соответствующие деяния, совершенные до его вступления в силу, считаются не содержащими состава правонарушения. Устранение противоправности деяния означает вместе с тем и устранение наказуемости. Вопрос об устранении и смягчении уголовной ответственности решен в ч. 1 ст. 10 УК, которая установила следующее правило: «Уголовный закон, устраняющий преступность деяния, смягчающий наказание или иным образом улучшающий положение лица, совершившего преступление, имеет обратную силу, т.е. распространяется на лиц, совершивших соответствующие деяния до вступления такого закона в силу, в том числе на лиц, отбывающих наказание или отбывших наказание, но имеющих судимость». В ч. 2 ст. 10 действующего УК есть такое положение: «Если новый уголовный закон смягчает наказание за деяние, которое отбывается лицом, то это наказание подлежит сокращению в пределах, предусмотренных новым уголовным законом».

В КоАП также установлено, что акты, смягчающие или отменяющие ответственность за административные правонарушения, имеют обратную силу, т.е. распространяются и на правонарушения, совершенные до издания этих актов (п. 2 ст. 1.7).

В то же время положения об обратной силе закона, тем или иным образом улучшающего положение лица, совершившего правонарушение, в законодательстве вообще не было.

Под смягчением наказания понимается: снижение высшего и низшего пределов уголовного наказания; исключение из санкции статьи более строгого вида наказания; включение в нее более мягкого вида наказания; исключение из санкции дополнительного наказания или включение более мягкого дополнительного наказания; снижение низшего и высшего пределов дополнительного наказания.

Смягчением наказания является и исключение наказания за совершение преступления при отягчающих обстоятельствах, например повторно. К смягчению наказания может привести исключение преступления из числа тяжких, что влияет на режим содержания осужденного в местах лишения свободы, дает более льготные условия для условно-досрочного и досрочного освобождения и замены неотбытой части наказания более мягким.

Актом, смягчающим ответственность за административное правонарушение, является акт, исключивший из санкции более строгое взыскание, либо снизивший размер взыскания, либо исключивший дополнительное взыскание.

Законы, смягчающие уголовную или административную ответственность, применяются на любой стадии производства по делу, включая надзорное производство.

Кроме комментируемой статьи, носящей общий характер, об обратной силе закона в Конституции говорится и в ст. 57, которая решает этот вопрос применительно к налоговому законодательству. В ней предусмотрено, что законы, устанавливающие новые налоги или ухудшающие положение налогоплательщиков, обратной силы не имеют (см. комм. к ст. 57). Между тем на практике оказалось, что ряд законов не соответствуют требованиям ст. 54 и 57 Конституции и тем самым нарушают права налогоплательщиков и других лиц.

Постановлениями Конституционного Суда, принятыми по обращениям пострадавших физических и юридических лиц, а также по запросам судов, положение исправляется. При этом важно отметить, что значение указанных постановлений выходит за рамки вопросов, поднятых в конкретных обращениях. Принятые по этим делам постановления Суда не только решили вопросы, поставленные заявителями, но и определили правовую позицию Суда по проблеме в целом. Это сделано, в частности, в Постановлении Конституционного Суда от 24 октября 1996 г. N 19-П по делу о проверке конституционности ч. 1 ст. 2 ФЗ от 7 марта 1996 г. «О внесении изменений в Закон Российской Федерации «Об акцизах»».

Поводом к рассмотрению дела явились запрос Арбитражного суда Брянской области в связи с рассмотрением иска по делу товарищества с ограниченной ответственностью «Эйдос», а также жалобы группы акционеров различных обществ. В обращениях ставился вопрос о нарушении конституционных прав и свобод оспариваемой нормой, которая придает обратную силу названному закону, ухудшая тем самым положение налогоплательщиков.

Суд удовлетворил запрос суда и жалобы заявителей и признал оспариваемую законодательную норму неконституционной.

В Постановлении Суда указывается, что, по смыслу Конституции и ФЗ от 14 июня 1994 г. «О порядке опубликования и вступления в силу федеральных конституционных законов, федеральных законов, актов палат Федерального Собрания», общим для всех отраслей права правилом является принцип, согласно которому закон, ухудшающий положение граждан, а соответственно и объединений, созданных для реализации конституционных прав и свобод граждан, обратной силы не имеет. Данный принцип применен, в частности, в Гражданском (ст. 4 и 422), Таможенном (ст. 234), Уголовном (ст. 6) кодексах.

Вместе с тем Конституция содержит и прямые запреты, касающиеся придания закону обратной силы (ст. 54, 57). Положение ст. 57, ограничивающее возможность законодателя придавать закону обратную силу, является одновременно и нормой, гарантирующей конституционное право на защиту от придания обратной силы законам, ухудшающим положение налогоплательщиков, в том числе на основании нормы, устанавливающей порядок введения таких законов в действие. Одновременно Конституция не препятствует приданию обратной силы законам, если они улучшают положение налогоплательщиков. При этом благоприятный для субъектов налогообложения характер такого закона должен быть понятен как налогоплательщикам, так и государственным органам, взимающим налоги.

Приведенная правовая позиция Конституционного Суда была выражена и в ряде более поздних решений, касающихся прав граждан, не связанных с наказанием за ранее совершенные правонарушения.

В этом смысле большой интерес представляет Постановление Конституционного Суда от 24 мая 2001 г. N 8-П (СЗ РФ. 2001. N 22. ст. 76). Оно принято по делу о проверке конституционности положения ч. 1 ст. 1 и ст. 2 ФЗ от 25 июля 1998 г. «О жилищных субсидиях гражданам, выезжающим из районов Крайнего Севера и приравненных к ним местностей», которым установлено, что в той части, в какой предусмотренное ими требование о наличии минимального 15-летнего стажа работы (времени проживания) в районах Крайнего Севера и приравненных к ним местностях, дающего право на получение жилищных субсидий, предоставляемых за счет средств федерального бюджета, распространяется и на граждан, которые в соответствии с ранее действовавшим законодательством приобрели такое право при наличии стажа работы в указанных районах и местностях не менее 10 лет.

В Постановлении признано, что распространение предписания о минимальном 15-летнем стаже работы (времени проживания) как условии приобретения права на получение жилищных субсидий на лиц, которым такое право уже было предоставлено при наличии стажа работы не менее 10 лет, и тем самым придание обратной силы закону, ухудшающему положение граждан, означающее по существу отмену для этих лиц права на получение жилищной субсидии, приобретенного ими в соответствии с ранее действовавшим законодательством и реализуемого в конкретных правоотношениях, несовместимо, в частности, с требованиями, вытекающими из ст. 54 (ч. 1), 55 (ч. 2) и 57 Конституции РФ.

Исключения

Общее понятие исключительной ситуации

Во время выполнения программы могут возникать ситуации, когда состояние внешних данных, устройств ввода-вывода или компьютерной системы в целом делает дальнейшие вычисления в соответствии с базовым алгоритмом невозможными или бессмысленными. Классические примеры подобных ситуаций приведены ниже.

  • Целочисленное деление на ноль. Конечного результата у данной операции быть не может, поэтому ни дальнейшие вычисления, ни попытка использования результата деления не приведут к решению задачи.
  • Ошибка при попытке считать данные с внешнего устройства. Если данные не удаётся получить, любые дальнейшие запланированные операции с ними бессмысленны.
  • Исчерпание доступной памяти. Если в какой-то момент система оказывается не в состоянии выделить достаточный для прикладной программы объём оперативной памяти, программа не сможет работать нормально.
  • Появление сигнала аварийного отключения электропитания системы. Прикладную задачу, по всей видимости, решить не удастся, в лучшем случае (при наличии какого-то резерва питания) прикладная программа может позаботиться о сохранении данных.

Виды исключительных ситуаций

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

  • Синхронные исключения могут возникнуть только в определённых, заранее известных точках программы. Так, ошибка чтения файла или коммуникационного канала, нехватка памяти — типичные синхронные исключения, так как возникают они только в операции чтения или в операции выделения памяти соответственно.
  • Асинхронные исключения могут возникать в любой момент времени и не зависят от того, какую конкретно инструкцию программы выполняет система. Типичные примеры таких исключений: аварийный отказ питания или поступление новых данных.

Некоторые типы исключений могут быть отнесены как к синхронным, так и к асинхронным. Например, инструкция деления на ноль формально должна приводить к синхронному исключению, так как логически оно возникает именно при выполнении данной команды, но на некоторых платформах за счёт глубокой конвейеризации исключение может фактически оказаться асинхронным.

Обработчики исключений

Общее описание

В отсутствие собственного механизма обработки исключений для прикладных программ наиболее общей реакцией на любую исключительную ситуацию является немедленное прекращение выполнения с выдачей пользователю сообщения о характере исключения. Можно сказать, что в подобных случаях единственным и универсальным обработчиком исключений становится операционная система. Например, в операционную систему Windows встроена утилита Dr. Watson, которая занимается сбором информации о необработанном исключении и её отправкой на специальный сервер компании Microsoft.

Возможно игнорирование исключительной ситуации и продолжение работы, но такая тактика опасна, так как приводит к ошибочным результатам работы программ или возникновению ошибок впоследствии. Например, проигнорировав ошибку чтения из файла блока данных, программа получит в своё распоряжение не те данные, которые она должна была считать, а какие-то другие. Результаты их использования предугадать невозможно.

Обработка исключительных ситуаций самой программой заключается в том, что при возникновении исключительной ситуации управление передаётся некоторому заранее определённому обработчику — блоку кода, процедуре, функции, которые выполняют необходимые действия.

Существует два принципиально разных механизма функционирования обработчиков исключений.

  • Обработка с возвратом подразумевает, что обработчик исключения ликвидирует возникшую проблему и приводит программу в состояние, когда она может работать дальше по основному алгоритму. В этом случае после того, как выполнится код обработчика, управление передаётся обратно в ту точку программы, где возникла исключительная ситуация (либо на команду, вызвавшую исключение, либо на следующую за ней, как в некоторых старых диалектах языка BASIC) и выполнение программы продолжается. Обработка с возвратом типична для обработчиков асинхронных исключений (которые обычно возникают по причинам, не связанным прямо с выполняемым кодом), для обработки синхронных исключений она малопригодна.
  • Обработка без возврата заключается в том, что после выполнения кода обработчика исключения управление передаётся в некоторое, заранее заданное место программы, и с него продолжается исполнение. То есть, фактически, при возникновении исключения команда, во время работы которой оно возникло, заменяется на безусловный переход к заданному оператору.

Существует два варианта подключения обработчика исключительных ситуаций к программе: структурная и неструктурная обработка исключений.

Неструктурная обработка исключений

Неструктурная обработка исключений реализуется в виде механизма регистрации функций или команд-обработчиков для каждого возможного типа исключения. Язык программирования или его системные библиотеки предоставляют программисту как минимум две стандартные процедуры: регистрации обработчика и разрегистрации обработчика. Вызов первой из них «привязывает» обработчик к определённому исключению, вызов второй — отменяет эту «привязку». Если исключение происходит, выполнение основного кода программы немедленно прерывается и начинается выполнение обработчика. По завершении обработчика управление передаётся либо в некоторую наперёд заданную точку программы, либо обратно в точку возникновения исключения (в зависимости от заданного способа обработки — с возвратом или без). Независимо от того, какая часть программы в данный момент выполняется, на определённое исключение всегда реагирует последний зарегистрированный для него обработчик. В некоторых языках зарегистрированный обработчик сохраняет силу только в пределах текущего блока кода (процедуры, функции), тогда процедура разрегистрации не требуется. Ниже показан условный фрагмент кода программы с неструктурной обработкой исключений:

УстановитьОбработчик(ОшибкаБД, ПерейтиНа ОшБД) // На исключение «ОшибкаБД» установлен обработчик — команда «ПерейтиНа ОшБД» … // Здесь находятся операторы работы с БД ПерейтиНа СнятьОшБД // Команда безусловного перехода — обход обработчика исключений ОшБД: // метка — сюда произойдёт переход в случае ошибки БД по установленному обработчику … // Обработчик исключения БД СнятьОшБД: // метка — сюда произойдёт переход, если контролируемый код выполнится без ошибки БД. СнятьОбработчик(ОшибкаБД) // Обработчик снят

Неструктурная обработка — практически единственный вариант для обработки асинхронных исключений, но для синхронных исключений она неудобна: приходится часто вызывать команды установки/снятия обработчиков, всегда остаётся опасность нарушить логику работы программы, пропустив регистрацию или разрегистрацию обработчика.

Структурная обработка исключений

Не следует путать со Структурированная обработка исключений.

Структурная обработка исключений требует обязательной поддержки со стороны языка программирования — наличия специальных синтаксических конструкций. Такая конструкция содержит блок контролируемого кода и обработчик (обработчики) исключений. Наиболее общий вид такой конструкции (условный):

НачалоБлока … // Контролируемый код … если (условие) то СоздатьИсключение Исключение2 … Обработчик Исключение1 … // Код обработчика для Исключения1 Обработчик Исключение2 … // Код обработчика для Исключения2 ОбработчикНеобработанных … // Код обработки ранее не обработанных исключений КонецБлока

Здесь «НачалоБлока» и «КонецБлока» — ключевые слова, которые ограничивают блок контролируемого кода, а «Обработчик» — начало блока обработки соответствующего исключения. Если внутри блока, от начала до первого обработчика, произойдёт исключение, то произойдёт переход на обработчик, написанный для него, после чего весь блок завершится и исполнение будет продолжено со следующей за ним команды. В некоторых языках нет специальных ключевых слов для ограничения блока контролируемого кода, вместо этого обработчик (обработчики) исключений могут быть встроены в некоторые или во все синтаксические конструкции, объединяющие несколько операторов. Так, например, в языке Ада любой составной оператор (begin — end) может содержать обработчик исключений.

«ОбработчикНеобработанных» — это обработчик исключений, которые не соответствуют ни одному из описанных выше в данном блоке. Обработчики исключений в реальности могут описываться по-разному (один обработчик на все исключения, по одному обработчику на каждый тип исключения), но принципиально они работают одинаково: при возникновении исключения находится первый соответствующий ему обработчик в данном блоке, его код выполняется, после чего выполнение блока завершается. Исключения могут возникать как в результате программных ошибок, так и путём явной их генерации с помощью соответствующей команды (в примере — команда «СоздатьИсключение»). С точки зрения обработчиков такие искусственно созданные исключения ничем не отличаются от любых других.

Блоки обработки исключений могут многократно входить друг в друга, как явно (текстуально), так и неявно (например, в блоке вызывается процедура, которая сама имеет блок обработки исключений). Если ни один из обработчиков в текущем блоке не может обработать исключение, то выполнение данного блока немедленно завершается, и управление передаётся на ближайший подходящий обработчик более высокого уровня иерархии. Это продолжается до тех пор, пока обработчик не найдётся и не обработает исключение или пока исключение не выйдет из обработчиков заданных программистом и не будет передано системному обработчику по умолчанию, аварийно закроющему программу.

Иногда бывает неудобно завершать обработку исключения в текущем блоке, то есть желательно, чтобы при возникновении исключения в текущем блоке обработчик выполнил какие-то действия, но исключение продолжило бы обрабатываться на более высоком уровне (обычно так бывает, когда обработчик данного блока не полностью обрабатывает исключение, а лишь частично). В таких случаях в обработчике исключений генерируется новое исключение или возобновляется, с помощью специальной команды, ранее появившееся. Код обработчиков не является защищённым в данном блоке, поэтому созданное в нём исключение будет обрабатываться в блоках более высокого уровня.

Блоки с гарантированным завершением

Помимо блоков контролируемого кода для обработки исключений, языки программирования могут поддерживать блоки с гарантированным завершением. Их использование оказывается удобным тогда, когда в некотором блоке кода, независимо от того, произошли ли какие-то ошибки, необходимо перед его завершением выполнить определённые действия. Простейший пример: если в процедуре динамически создаётся какой-то локальный объект в памяти, то перед выходом из этой процедуры объект должен быть уничтожен (чтобы избежать утечки памяти), независимо от того, произошли после его создания ошибки или нет. Такая возможность реализуется блоками кода вида:

НачалоБлока … // Основной код Завершение … // Код завершения КонецБлока

Заключённые между ключевыми словами «НачалоБлока» и «Завершение» операторы (основной код) выполняются последовательно. Если при их выполнении не возникает исключений, то затем выполняются операторы между ключевыми словами «Завершение» и «КонецБлока» (код завершения). Если же при выполнении основного кода возникает исключение (любое), то сразу же выполняется код завершения, после чего весь блок завершается, а возникшее исключение продолжает существовать и распространяться до тех пор, пока его не перехватит какой-либо блок обработки исключений более высокого уровня.

Принципиальное отличие блока с гарантированным завершением от обработки — то, что он не обрабатывает исключение, а лишь гарантирует выполнение определённого набора операций перед тем, как включится механизм обработки. Нетрудно заметить, что блок с гарантированным завершением легко реализуется с помощью обычного механизма структурной обработки (для этого достаточно поставить команду генерации исключения непосредственно перед завершением контролируемого блока и правильно написать код обработчика), но наличие отдельной конструкции позволяет сделать код более прозрачным и защищает от случайных ошибок.

Поддержка в различных языках

Большинство современных языков программирования, такие как Ada, C++, D, Delphi, Objective-C, Java, JavaScript, Eiffel, OCaml, Ruby, Python, Common Lisp, SML, PHP, все языки платформы .NET и др. имеют встроенную поддержку структурной обработки исключений. В этих языках при возникновении исключения, поддерживаемого языком, происходит раскрутка стека вызовов до первого обработчика исключений подходящего типа, и управление передаётся обработчику.

За исключением незначительных различий в синтаксисе, существует лишь пара вариантов обработки исключений. В наиболее распространённом из них исключительная ситуация генерируется специальным оператором (throw или raise), а само исключение, с точки зрения программы, представляет собой некоторый объект данных. То есть, генерация исключения состоит из двух этапов: создания объекта-исключения и возбуждения исключительной ситуации с этим объектом в качестве параметра. При этом конструирование такого объекта само по себе выброса исключения не вызывает. В одних языках объектом-исключением может быть объект любого типа данных (в том числе строкой, числом, указателем и так далее), в других — только предопределённого типа-исключения (чаще всего он имеет имя Exception) и, возможно, его производных типов (типов-потомков, если язык поддерживает объектные возможности).

Область действия обработчиков начинается специальным ключевым словом try или просто языковым маркером начала блока (например, begin) и заканчивается перед описанием обработчиков (catch, except, resque). Обработчиков может быть несколько, один за одним, и каждый может указывать тип исключения, который он обрабатывает. Как правило, никакого подбора наиболее подходящего обработчика не производится, и выполняется первый же обработчик, совместимый по типу с исключением. Поэтому порядок следования обработчиков имеет важное значение: если обработчик, совместимый с многими или всеми типами исключений, окажется в тексте прежде специфических обработчиков для конкретных типов, то специфические обработчики не будут использоваться вовсе.

Некоторые языки также допускают специальный блок (else), который выполняется, если ни одного исключения не было сгенерировано в соответствующей области действия. Чаще встречается возможность гарантированного завершения блока кода (finally, ensure). Заметным исключением является Си++, где такой конструкции нет. Вместо неё используется автоматический вызов деструкторов объектов. Вместе с тем существуют нестандартные расширения Си++, поддерживающие и функциональность finally (например в MFC).

В целом, обработка исключений может выглядеть следующим образом (в некотором абстрактном языке):

try { line = console.readLine(); if (line.length() == 0) throw new EmptyLineException(«Строка, считанная с консоли, пустая!»); console.printLine(«Привет, %s!» % line); } catch (EmptyLineException exception) { console.printLine(«Привет!»); } catch (Exception exception) { console.printLine(«Ошибка: » + exception.message()); } else { console.printLine(«Программа выполнилась без исключительных ситуаций»); } finally { console.printLine(«Программа завершается»); }

В некоторых языках может быть лишь один обработчик, который разбирается с различными типами исключений самостоятельно.

Достоинства и недостатки

Достоинства использования исключений особенно заметно проявляются при разработке библиотек процедур и программных компонентов, ориентированных на массовое использование. В таких случаях разработчик часто не знает, как именно должна обрабатываться исключительная ситуация (при написании универсальной процедуры чтения из файла невозможно заранее предусмотреть реакцию на ошибку, так как эта реакция зависит от использующей процедуру программы), но ему это и не нужно — достаточно сгенерировать исключение, обработчик которого предоставляется реализовать пользователю компонента или процедуры. Единственная альтернатива исключениям в таких случаях — возврат кодов ошибок, которые вынужденно передаются по цепочке между несколькими уровнями программы, пока не доберутся до места обработки, загромождая код и снижая его понятность. Использование исключений в целях контроля ошибок повышает читаемость кода, так как позволяет отделить обработку ошибок от самого алгоритма, и облегчает программирование и использование компонентов других разработчиков. А обработка ошибок может быть централизована в аспектах.

К сожалению, реализация механизма обработки исключений существенно зависит от языка, и даже компиляторы одного и того же языка на одной и той же платформе могут иметь значительные различия. Это не позволяет прозрачно передавать исключения между частями программы, написанными на разных языках; например, поддерживающие исключения библиотеки обычно непригодны для использования в программах на языках, отличных от тех, для которых они разработаны, и, тем более, на языках, не поддерживающих механизм обработки исключений. Такое состояние существенно ограничивает возможности использования исключений, например, в ОС UNIX и её клонах и под Windows, так как большинство системного ПО и низкоуровневых библиотек этих систем пишется на языке Си, не поддерживающем исключений. Соответственно, для работы с API таких систем с применением исключений приходится писать библиотеки-врапперы, функции которых анализировали бы коды возврата функций API и в нужных случаях генерировали исключения.

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

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

Джоэл Спольски считает, что код, рассчитанный на работу с исключениями, теряет линейность и предсказуемость. Если в классическом коде выходы из блока, процедуры или функции находятся только там, где их явно указал программист, то в коде с исключениями исключение (потенциально) может произойти в любом операторе и анализом самого кода невозможно узнать, где именно исключения могут происходить. В коде же, рассчитанном на исключения, предсказать, в каком месте произойдёт выход из блока кода, невозможно, и любой оператор должен рассматриваться как потенциально последний в блоке, в результате сложность кода возрастает, а надёжность снижается.

Также в сложных программах возникают большие «нагромождения» операторов try … finally и try … catch (try … except), если не использовать аспекты.

Проверяемые исключения

Некоторые проблемы простой обработки исключений

Изначально (например, в C++), не существовало никакой формальной дисциплины описания, генерации и обработки исключений: любое исключение может быть возбуждено в любом месте программы, и, если для него не находится обработчика в стеке вызовов, выполнение программы прерывается аварийно. Если функция (особенно библиотечная) генерирует исключения, то для устойчивой работы использующая её программа должна перехватывать их все. Когда по какой-либо причине одно из возможных исключений оказывается необработанным, будет происходить неожиданное аварийное завершение программы.

С подобными эффектами можно бороться организационными мерами: описывая возможные исключения, возникающие в библиотечных модулях, в соответствующей документации. Но при этом всегда остаётся вероятность пропустить необходимый обработчик из-за случайной ошибки или несоответствия документации коду (что вовсе не редкость). Чтобы полностью исключить потерю обработки исключений, в обработчики приходится специально добавлять ветвь обработки «всех остальных» исключений (которая гарантированно перехватит любые, даже заранее неизвестные исключения), но такой выход не всегда оптимален. Более того, сокрытие всех возможных исключений может привести к ситуации, когда будут скрыты серьёзные, и при этом трудно обнаруживаемые ошибки.

Механизм проверяемых исключений

Позже в ряде языков, например, в Java, появились проверяемые исключения. Сущность этого механизма состоит в добавлении в язык следующих правил и ограничений:

  • В описании функции (или метода класса) в явном виде перечисляются все типы исключений, которые она может сгенерировать.
  • Функция, вызывающая функцию или метод с объявленными исключениями, для каждого из этих исключений обязана либо содержать обработчик, либо, в свою очередь, указывать этот тип как генерируемый ею в своём описании.
  • Компилятор проверяет наличие обработчика в теле функции или записи исключения в её заголовке. Реакция на наличие неописанного и необработанного исключения может быть разной. Например, в Java, если компилятор обнаруживает возможность возникновения исключения, которое не описано в заголовке функции и не обрабатывается в ней, программа считается некорректной и не компилируется. В C++ возникновение в функции неописанного и необработанного исключения приводит к немедленному завершению программы; при этом отсутствие у функции списка объявленных исключений обозначает возможность возникновения любых исключений и стандартный порядок их обработки внешним кодом.

Внешне (в языке Java) реализация такого подхода выглядит следующим образом:

int getVarValue(String varName) throws SQLException { … // код метода, возможно, содержащий вызовы, способные бросить исключение SQLException } // Ошибка при компиляции — исключение не объявлено и не перехвачено int eval1(String expression) { … int a = prev + getVarValue(«abc»); … } // Правильно — исключение объявлено и будет передаваться дальше int eval2(String expression) throws SQLException { … int a = prev + getVarValue(«abc»); … } // Правильно — исключение перехватывается внутри метода и наружу не выходит int eval3(String expression) { … try { int a = prev + getVarValue(«abc»); } catch (SQLException ex) { // Обработка исключения } … }

Здесь метод getVarValue объявлен как генерирующий исключение SQLException. Следовательно, любой использующий его метод должен либо перехватить это исключение, либо объявить его как генерируемое. В данном примере метод eval1 приведёт к ошибке компиляции, поскольку вызывает метод getVarValue, но не перехватывает исключение и не объявляет его. Метод eval2 объявляет исключение, а метод eval3 перехватывает и обрабатывает его, оба этих метода корректны в отношении работы с исключением, вызываемым методом getVarValue.

Преимущества и недостатки

Возможно, этот раздел содержит оригинальное исследование. Добавьте , в противном случае он может быть удалён.
Дополнительные сведения могут быть на странице обсуждения. (17 ноября 2013)

Проверяемые исключения снижают количество ситуаций, когда исключение, которое могло быть обработано, вызвало критическую ошибку в программе, поскольку за наличием обработчиков следит компилятор. Это особенно полезно при изменениях кода, когда метод, который не мог ранее выбрасывать исключение типа X, начинает это делать; компилятор автоматически отследит все случаи его использования и проверит наличие соответствующих обработчиков.

Другим полезным качеством проверяемых исключений является то, что они способствуют осмысленному написанию обработчиков: программист явно видит полный и правильный список исключений, которые могут возникнуть в данном месте программы, и может написать на каждое из них осмысленный обработчик вместо того, чтобы создавать «на всякий случай» общий обработчик всех исключений, одинаково реагирующий на все нештатные ситуации.

У проверяемых исключений есть и недостатки.

  • Они вынуждают создавать обработчики исключений, с которыми программист в принципе справиться не может, например ошибок ввода-вывода в веб-приложении. Это приводит к появлению «глупых» обработчиков, которые не делают ничего или дублируют системный обработчик критической ошибки (например, выводят стек вызова исключения) и, в итоге, только замусоривают код.
  • Становится невозможным добавление нового проверяемого исключения в метод, описанный в библиотеке, поскольку это нарушает обратную совместимость. (Это верно и для небиблиотечных методов, но в этом случае проблема менее существенна, так как весь код, в конечном итоге, доступен и может быть переработан).

Из-за перечисленных недостатков при обязательности использования проверяемых исключений этот механизм часто обходят. Например, многие библиотеки объявляют все методы как выбрасывающие некоторый общий класс исключений (например, Exception), и только на этот тип исключения создаются обработчики. Результатом становится то, что компилятор заставляет писать обработчики исключений даже там, где они объективно не нужны, и становится невозможно определить без чтения исходников, какие именно подклассы декларируемых исключений бросает метод, чтобы навесить на них разные обработчики. Более правильным подходом считается перехват внутри метода новых исключений, порождённых вызываемым кодом, а при необходимости передать исключение дальше — «заворачивание» его в исключение, уже возвращаемое методом. Например, если метод изменили так, что он начинает обращаться к базе данных вместо файловой системы, то он может сам ловить SQLException и выбрасывать вместо него вновь создаваемый IOException, указывая в качестве причины исходное исключение. Обычно рекомендуется изначально объявлять именно те исключения, которые придётся обрабатывать вызывающему коду. Скажем, если метод извлекает входные данные, то для него целесообразно объявить IOException, а если он оперирует SQL-запросами, то, вне зависимости от природы ошибки, он должен объявлять SQLException. В любом случае, набор выбрасываемых методом исключений должен тщательно продумываться. При необходимости имеет смысл создавать собственные классы исключений, наследуя их от Exception или других подходящих проверяемых исключений.

Исключения, не требующие проверки

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

  • Исключения, представляющие собой серьёзные ошибки, которые, «по идее», возникать не должны, и которые в обычных условиях не следует обрабатывать программой. Такие ошибки могут возникать как во внешней относительно программы среде, так и внутри неё. Примером такой ситуации может быть ошибка среды исполнения программы на Java. Она потенциально возможна при исполнении любой команды; за редчайшими исключениями в прикладной программе не может быть осмысленного обработчика подобной ошибки — ведь если среда исполнения работает неверно, на что указывает сам факт исключения, нет никакой гарантии, что и обработчик будет исполнен правильно.
  • Исключения времени выполнения, обычно связанные с ошибками программиста. Такие исключения возникают из-за логических ошибок разработчика или недостаточности проверок в коде. Например, ошибка обращения по неинициализированному (нулевому) указателю, как правило, означает, что программист либо пропустил где-то инициализацию переменной, либо при выделении динамической памяти не проверил, действительно ли память была выделена. Как первое, так и второе требует исправления кода программы, а не создания обработчиков.

Выносить подобные ошибки вообще за пределы системы обработки исключений нелогично и неудобно, хотя бы потому, что иногда они всё-таки перехватываются и обрабатываются. Поэтому в системах с проверяемыми исключениями часть типов исключений выводится из-под механизма проверки и работает традиционным образом. В Java это классы исключений, унаследованные от java.lang.Error — фатальные ошибки и java.lang.RuntimeException — ошибки времени выполнения, как правило, связанные с ошибками кодирования или недостаточностью проверок в коде программы (неверный аргумент, обращение по пустой ссылке, выход за границы массива, неверное состояние монитора и т. п.).

> См. также

  • Код ошибки
  • Setjmp/longjmp

> Ссылки

  • Типичные сценарии распространения и обработки исключений

Статья: Обратная сила закона: общие правила и пределы допустимости (Бошно С.В.) («Ваш налоговый адвокат», 2008, n 4)

«Ваш налоговый адвокат», 2008, N 4
ОБРАТНАЯ СИЛА ЗАКОНА: ОБЩИЕ ПРАВИЛА И ПРЕДЕЛЫ ДОПУСТИМОСТИ
Обратная сила закона имеет большое значение для правильного применения законодательства, что особенно важно в условиях правового социального государства. Данная проблема на сегодня проработана мало. Специально этому вопросу посвящено несколько монографических исследований, диссертаций и статей, но этого недостаточно, учитывая глубину и актуальность данной темы. Дискуссия о действии законодательства во времени имела место в 90-х гг. XX века, но была весьма непродолжительной и непродуктивной. Работы об обратном действии норм законодательства разных видов конституционных норм нуждаются в общетеоретическом обобщении на основе. Такая потребность предопределяется тем, что общественные отношения, подлежащие правовой оценке, нередко приобретают комплексный характер и все труднее становится различать нормы частного и публичного характера.
Конституция РФ однозначно решает временные проблемы для норм, устанавливающих юридическую ответственность и регулирующих налоговые правоотношения. Что же касается регулятивных норм и пределов их обратного действия, то здесь конституционные положения лишь создают предпосылки для различных толкований.
Общие положения Основного Закона развиваются в актах Конституционного Суда РФ, на основе которых сложилась соответствующая практика судов общей юрисдикции и арбитражных судов. Этот массив судебной практики нуждается в анализе и обобщении в целях выработки общих рекомендаций по применению норм к длящимся правоотношениям. В части обратного действия различных видов норм права, в том числе устанавливающих юридическую ответственность, имеется существенная разница. В данной статье будут рассмотрены регулятивные нормы.
Вопрос об обратном действии закона и его пределах стоит весьма остро, что в немалой степени предопределено чрезвычайной изменчивостью российского законодательства. Широко распространена проблема временного разрыва между обращением лица за реализацией своего права в орган государственной власти или местного самоуправления и принятием соответствующего правоприменительного акта. В случае отмены судом упомянутого акта (по причине признания незаконным) этот период только увеличивается. Суд выносит решение об устранении допущенного нарушения прав, но само законодательство, подлежащее применению, за это время успевает измениться.
Обратная сила закона и ее действие
Проанализируем позиции экспертов в области права. Известный специалист по гражданскому праву С.С. Алексеев указал, что обратная сила закона означает «распространение действия нового акта на факты и порожденные ими правовые последствия, которые возникли до введения в действие новых норм». Он выделяет две разновидности проявления обратной силы закона , когда действие нового нормативного акта распространяется на факты прошлого, по которым окончательные правовые последствия еще не наступили (простая обратная сила) и уже наступили.
———————————
Алексеев С.С. Проблемы теории права: Курс лекций в двух томах. Том 2. — Свердловск: Изд-во Свердловского юридического института, 1973.
По мнению авторитетного специалиста в области темпоральных норм д-ра юрид. наук, профессора Д.П. Бахраха, обратная сила — это ревизионная сила нормы . Такая норма «предполагает пересмотр (ревизию) уже урегулированных в соответствии с ранее действовавшим законодательством прав и обязанностей» . Норма обратного действия изменяет возникшие ранее правоотношения, обязывает пересмотреть правоприменительные акты с более ранней даты, чем дата вступления нормы в силу. Профессор Бахрах сформулировал следующие принципы действия правовых норм во времени :
— по общему правилу регулятивная норма начинает действовать немедленно;
— норма, ухудшающая правовое положение граждан (как многих, так и некоторых), имеет перспективное действие и не затрагивает прав, ранее ими приобретенных;
— норма, смягчающая или отменяющая ответственность за правонарушения, или охранительная норма, иным образом улучшающая положение лиц, совершивших правонарушение, имеет обратную силу.
———————————
Темпоральная норма — правило поведения, описывающее порядок вступления норм права в действие, прекращения их действия, правила выбора подлежащих применению норм (Бахрах Д.Н. Очерки теории российского права. — М.: Норма, 2008).
Бахрах Д.Н. Указ. соч.
Комиссаров К.И. Задачи судебного надзора в сфере гражданского судопроизводства. — Свердловск: Уральский рабочий, 1971.
Исключения из этих правил допускаются только при наличии специальной коллизионной нормы, принятой тем же органом, который установил норму основную, если ему такое право предоставлено.
Доктор юрид. наук, профессор А.А. Тилле указывал, что под обратным действием (ретроактивностью, обратной силой) закона надо понимать такое его действие на правоотношение, когда на момент его возникновения новый закон предполагается существовавшим. Отсюда вытекает, что последствия, которые возникли при старом законе, признаются неправильными и подлежат изменению в соответствии с нормами нового закона .
———————————
Тилле А.А. Время, пространство, закон. Действие советского закона во времени и пространстве. — М.: Юридическая литература, 1956.
Нормативный акт может приобрести обратную силу только при прямом указании закона. Так, Гражданский кодекс РФ не имеет обратной силы, на что прямо указано в п. 1 ст. 4 ГК РФ. Если специальный закон не содержит отличных норм, то следует использовать режим, сформированный кодексами для отношений определенного вида.
Большое значение имеет содержание закона: улучшает или ухудшает он положение лица, создает он права и обязанности или прекращает их. Именно в зависимости от содержания норм Конституцией РФ устанавливаются темпоральные правила. Вопрос о том, ухудшает ли положение лица применение закона, прекратившего его право на получение определенного блага (правомочия), дискуссионный.
В соответствии со ст. ст. 54 — 57 Конституции РФ законы, ухудшающие положение граждан, не могут иметь обратной силы. Так, ст. 54 Основного Закона предусмотрено, что закон, устанавливающий или отягчающий ответственность, обратной силы не имеет. Никто не может нести ответственность за деяние, которое в момент его совершения не признавалось правонарушением. Если после совершения правонарушения ответственность за него устранена или смягчена, применяется новый закон.
Для толкования и применения правил действия законодательства во времени большое значение имеет ст. 55 Конституции РФ, согласно которой перечисление в Конституции РФ основных прав и свобод не должно толковаться как отрицание или умаление других общепризнанных прав и свобод человека и гражданина, а также конституционный запрет на издание законов, отменяющих или умаляющих такие права и свободы.
Содержание указанных статей многократно толковалось, их положения применялись высшими судами РФ. Так, при разрешении дел Президиум ВС РФ исходит из конституционного принципа, что законы, ухудшающие положение граждан, обратной силы не имеют (Постановление от 18 сентября 2002 г. N 249пв01).
Согласно правовой позиции, сформулированной КС РФ в Постановлении от 24 мая 2001 г. N 8-П, придание обратной силы закону, ухудшающему положение граждан и означающему, по существу, отмену для этих лиц права, приобретенного ими в соответствии с ранее действовавшим законодательством и реализуемого ими в конкретных правоотношениях, несовместимо с положениями ч. 1 ст. 1, ст. ст. 2, 18, ч. 1 ст. 54, ч. 2 ст. 55 и ст. 57 Конституции РФ. По смыслу указанных конституционных положений законодатель должен изменять ранее установленные условия таким образом, чтобы соблюдался принцип поддержания доверия граждан к закону и действиям государства. Этот принцип предполагает сохранение разумной стабильности правового регулирования и недопустимость внесения произвольных изменений в действующую систему норм, а также — в случае необходимости — предоставление гражданам возможности (в частности, посредством установления временного регулирования) в течение некоторого переходного периода адаптироваться к вносимым изменениям. С этим связаны законные ожидания граждан, что приобретенное ими на основе действующего законодательства право будет реализовано и будет уважаться властями (Постановление КС РФ от 29 января 2004 г. N 2-П).
Таким образом, конституционная доктрина признает издание закона, уменьшающего объем прав граждан, их умалением. Действительно, если согласно ранее действовавшей норме лицо имело какое-либо правомочие, то прекращение действия нормы сокращает правоспособность лица на соответствующий период времени. Именно поэтому установлен запрет на применение закона, прекращающего какие-либо правомочия, к отношениям, которые возникли до введения в действие этого нормативного акта.
Применение нормы к юридическим фактам,
возникшим до введения ее в действие
Казалось бы, ответ на вопрос, можно ли применять закон к юридическим фактам, возникшим до введения его в действие, однозначен: нельзя. Тем не менее здесь есть один нюанс. При рассмотрении заявления гражданина об установлении применимых в тот или иной период законодательных актов нужно определить, когда возникает юридический факт: в момент обращения лица в суд с исковым заявлением, на начало рассмотрения вопроса или на дату принятия правоприменительного акта. Решение этой временной проблемы весьма важно.
В юридической науке достаточно исследован вопрос о длящихся правоотношениях, которые переживают изменение законодательства. Возможность применения к таким отношениям положений более позднего нормативного акта напрямую зависит от того, был ли принят по таким правоотношениям правоприменительный акт ранее. Если да, то в дальнейшем применение к тем же правоотношениям акта, принятого позднее, недопустимо, поскольку фактически это означает пересмотр принятого ранее правоприменительного акта.
Обратите внимание: даже признание акта неконституционным не ведет к пересмотру актов и отношений, которые существовали на момент вынесения решения и вступления его в силу (ст. ст. 79 и 100 Федерального конституционного закона от 21 июля 1994 г. N 1-ФКЗ «О Конституционном Суде Российской Федерации»). Решение КС РФ является материально-правовым основанием для пересмотра ранее принятых судебных решений лишь в отношении тех лиц, которые выступали заявителями в рассматривавшемся деле. Прочие дела, при рассмотрении которых были применены нормативные положения, признанные неконституционными либо получившие конституционно-правовое истолкование, отличное от имевшего место ранее, пересматриваются в установленных процессуальным законом порядке и пределах по обращению управомоченного лица, если решение по делу не вступило в законную силу либо вступило в законную силу, но не исполнено или исполнено частично (Определение КС РФ от 5 февраля 2004 г. N 78-О).
Таким образом, обратное действие судебного акта возникает также в зависимости от того, состоялось ли правоприменение и было ли окончено его исполнение. Итак, если неконституционный закон действовал и применялся, но к моменту вынесения решения суда о неконституционности этого акта его применение окончено, применить справедливую конституционную норму нет возможности, поскольку это будет приданием закону обратной силы. С учетом изложенного полагаем, что определять, какое именно законодательство подлежит применению, нужно на момент обращения лица за реализацией своего права.
Данная позиция подтверждается юридической наукой и судебной практикой. Так, в Постановлении ФАС Московского округа от 23 ноября 2004 г. по делу N КГ-А41/10590-04 исследовались обстоятельства, связанные с подачей заявления на государственную регистрацию недвижимости. Между подачей заявления и рассмотрением его регистрирующим органом произошло изменение законодательства. Суд указал, что, поскольку изменения в порядке подачи заявления на госрегистрацию договора вступили в силу уже после обращения налогоплательщика в регистрационную палату, правомерна регистрация поданной заявки по законодательству, действовавшему на момент его подачи, несмотря на то что на момент рассмотрения заявки действовал другой закон. К аналогичному выводу (что подлежит применению законодательство, действовавшее на момент подачи заявки) пришел ФАС Московского округа в Постановлении от 20 апреля 2006 г. по делу N КА-А40/13302-05.
Имеются арбитражные дела о применении укороченного срока исковой давности по недействительным сделкам. Напомним, этот срок был сокращен с десяти до трех лет Федеральным законом от 21 июля 2005 г. N 109-ФЗ «О внесении изменения в статью 181 части первой Гражданского кодекса Российской Федерации», который вступил в силу с момента его опубликования (26 июля 2005 г.). Президиум Высшего Арбитражного Суда РФ дал анализ действия законодательства во времени в Постановлении от 16 января 2007 г. N 12663/06. Было установлено, что согласно отметке канцелярии истец обратился в суд первой инстанции с иском о применении последствий недействительности ничтожной сделки 17 марта 2005 г. Суд рассмотрел дело и вынес решение 22 декабря 2005 г., применив новые положения законодательства. Последующие инстанции согласились с первоначальным решением. ВАС РФ указал, что поскольку истец обратился с заявлением в суд до вступления в силу Закона, устанавливающего срок давности в три года, то установленный на тот момент десятилетний срок исковой давности истцом пропущен не был.
По мнению ВАС РФ, оспариваемые в данном деле судебные акты нарушили единообразие в толковании и применении арбитражными судами норм права, что в соответствии с п. 1 ст. 304 АПК РФ является основанием для их отмены. Вынося решение об их отмене, Суд руководствовался ст. 303, пп. 2 п. 1 ст. 305 и ст. 306 АПК РФ.
Из приведенного примера видно, что в системе арбитражных судов сложилось и поддерживается следующее правило действия законодательства во времени: применимое к данному делу законодательство определяется на момент обращения лица с исковым заявлением.
Конституционный Суд РФ сформулировал следующее правило: общим (основным) принципом действия закона во времени является распространение его на отношения, возникшие после введения его в действие. Распространить новые нормы на факты и порожденные ими правовые последствия, которые возникли до введения соответствующих норм в действие, т.е. придать закону обратную силу, вправе только законодатель. Правила действия новых норм, закрепляющих либо изменяющих права граждан, предусматривающих для них гарантии и льготы, во времени и по кругу лиц должны устанавливаться с соблюдением требований Конституции РФ, в том числе вытекающих из принципа равенства (ч. 1 и 2 ст. 19), который гарантирует гражданам защиту от всех форм дискриминации при реализации прав и свобод (Определение Конституционного Суда РФ от 18 января

>Обратная сила закона

Обратная сила закона

Уважаемые клиенты!
Вы всегда можете обратиться к нам, если Вам нужны:
юридическая консультация;
помощь в правовом анализе или разработке договора;
необходимо составить исковое заявление (отзыв на исковое заявление), иные процессуальные документы;
адвокат для защиты Ваших прав в арбитражном суде или суде общей юрисдикции;
нужно подать апелляционную, кассационную жалобу или надзорную жалобу на решение суда;
иные юридические услуги.

Самостоятельно разобраться в нюансах данного вопроса Вам поможет следующая статья:

Обратная сила закона имеет большое значение для правильного применения законодательства.

Обострение вопроса об обратном действии закона и его пределах в немалой степени предопределено чрезвычайной изменчивостью законодательства. Достаточно распространенной является проблема временного разрыва между обращением за осуществлением своего права в орган государственной власти или местного самоуправления и принятием соответствующего правоприменительного акта. Период этот может продлеваться в случае принятия органом акта, незаконность которого установлена позже и он отменен судом. Суд выносит решение об устранении допущенного нарушения, но само законодательство, подлежащее применению, за это время изменилось. Неопределенность в вопросе о применимом в данном случае законодательстве может препятствовать осуществлению гражданами их прав и защите их интересов.

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

1. Закон может приобрести обратную силу только при прямом указании закона. Гражданский кодекс РФ не имеет обратной силы, о чем прямо указано в п. 1 ст. 4 ГК РФ, в соответствии с которым акты гражданского законодательства не имеют обратной силы и применяются к отношениям, возникшим после введения их в действие. Действие закона распространяется на отношения, возникшие до введения его в действие, только в случае, когда это прямо предусмотрено законом. Если специальный закон не содержит отличных норм, то следует использовать режим, сформированный кодексами для отношений определенного вида.

2. Для правильного решения вопроса о применимом законодательстве в отечественной правовой системе большое значение имеет содержание закона: улучшает или ухудшает он положение гражданина, создает ли он права и обязанности или прекращает их. Именно в зависимости от содержания норм устанавливаются темпоральные правила Конституцией РФ. Дискуссионным является вопрос о том, является ли применение закона, прекратившего право гражданина на получение определенного блага (правомочия), ухудшением его положения.

В соответствии со ст. 54, 55, 56 и 57 Конституции РФ законы, ухудшающие положение граждан, не могут иметь обратной силы. Так, ст. 54 Конституции РФ установлено, что закон, устанавливающий или отягчающий ответственность, обратной силы не имеет. Никто не может нести ответственность за деяние, которое в момент его совершения не признавалось правонарушением. Если после совершения правонарушения ответственность за него устранена или смягчена, применяется новый закон.

Содержание указанных статей многократно истолковано и применено Конституционным Судом РФ, Верховным Судом РФ и Высшим Арбитражным Судом РФ.

Так, Президиум Верховного Суда РФ, разрешая дела, исходит из конституционного принципа, что законы, ухудшающие положение граждан, обратной силы не имеют (ст. 54, 55, 57 Конституции Российской Федерации), что зафиксировано в том числе в Постановлении Президиума Верховного Суда РФ от 18 сентября 2002 г. N 249пв01.

Согласно правовой позиции, сформулированной Конституционным Судом РФ, придание обратной силы закону, ухудшающему положение граждан и означающему, по существу, отмену для этих лиц права, приобретенного ими в соответствии с ранее действовавшим законодательством и реализуемого ими в конкретных правоотношениях, несовместимо с положениями ст. 1 (часть 1), 2, 18, 54 (часть 1), 55 (часть 2) и 57 Конституции Российской Федерации. По смыслу указанных конституционных положений изменение законодателем ранее установленных условий должно осуществляться таким образом, чтобы соблюдался принцип поддержания доверия граждан к закону и действиям государства, который предполагает сохранение разумной стабильности правового регулирования и недопустимость внесения произвольных изменений в действующую систему норм, а также — в случае необходимости — предоставление гражданам возможности (в частности, посредством установления временного регулирования) в течение некоторого переходного периода адаптироваться к вносимым изменениям. С этим связаны законные ожидания граждан, что приобретенное ими на основе действующего законодательства право будет уважаться властями и будет реализовано.

Таким образом, конституционная доктрина со ссылкой на ст. 54 — 57 Конституции РФ идет по пути признания умаления прав граждан издание закона, уменьшающего объем их прав. Именно из этого исходит положение о запрете применять законы, прекращающие правомочие, к отношениям, которые возникли до введения в действе нового закона. Действительно, если у гражданина в ранее действовавших нормах присутствовало какое-либо правомочие, то прекращение этого права сокращает его правоспособность на соответствующий период времени.

3. Большой практической значимостью обладает вопрос о том, можно ли применять закон к юридическим фактам, возникшим до его введения в действие. Казалось бы, ответ на указанный вопрос однозначный — нет. Тем не менее, важен следующий нюанс: в процессе рассмотрения заявления гражданина юридическим фактом, по которому устанавливается законодательство, будет: а) дата обращения с заявлением; б) дата начала рассмотрения вопроса или в) дата принятия правоприменительного акта? Решение этой временной проблемы имеет большое значение.

В юридической науке исследован вопрос о длящихся правоотношениях, которые переживают изменение законодательства. Решение вопроса о применении к таким отношениям более позднего закона напрямую зависит от того, был ли принят по ним правоприменительный акт. Если правоприменительный акт был принят, то недопустимо в дальнейшем применение к тем же отношениям более позднего закона. Это будет фактически означать пересмотр принятого правоприменительного акта.

Обратим в этой связи внимание на то обстоятельство, что даже признание акта неконституционным не ведет к пересмотру актов и отношений, которые произошли к моменту вынесения решения и вступления его в силу, что следует из ст. 79 и 100 Федерального конституционного закона «О Конституционном Суде Российской Федерации». Решение Конституционного Суда Российской Федерации является материально-правовым основанием для пересмотра ранее принятых судебных решений лишь в отношении тех лиц, которые выступали заявителями в деле, рассматривавшемся Конституционным Судом Российской Федерации. В отношении иных лиц, в делах которых были применены нормативные положения, признанные неконституционными либо получившие конституционно-правовое истолкование, отличное от имевшего место в правоприменительной практике, решение Конституционного Суда Российской Федерации влечет по обращениям управомоченных лиц пересмотр (изменение или отмену) в установленных процессуальным законом порядке и пределах основанного на таких нормативных положениях правоприменительного решения, не вступившего в законную силу либо вступившего в законную силу, но не исполненного или исполненного частично. Таким образом, возможности применения обратного действия судебного акта также ограничены в зависимости от того, состоялось ли правоприменение и было ли окончено его исполнение. Даже если действовал и применялся неконституционный закон, но его применение к моменту вынесения решения суда о его неконституционности окончено, это не дает возможности применить справедливую конституционную норму, так как это будет приданием закону обратной силы.

С учетом сказанного полагаем, что обращение гражданина за осуществлением своего права является фактом, определяющим законодательство, подлежащее применению. Именно по этой дате осуществляется установление действующего законодательства. Данная позиция подтверждается юридической наукой и судебной практикой.

Имеется судебная практика, полностью соответствующая установленной юридической доктрине. Так, например, в Постановлении Федерального арбитражного суда Московского округа по арбитражному спору N КГ-А41/10590-04 от 23 ноября 2004 г. исследовались обстоятельства, связанные с подачей на государственную регистрацию заявления, до рассмотрения которого регистрирующим органом произошло изменение законодательства. Судом указано, что изменения к Федеральному закону «О государственной регистрации прав на недвижимое имущество и сделок с ним», требующие подачи заявления о госрегистрации договора обеими его сторонами, вступили в силу уже после обращения Фонда «Прогимназия «Радуга» в МОРП. С учетом высказанной правовой позиции суд указал на правомерность регистрации поданной заявки по законодательству, действовавшему на момент его подачи, несмотря на то что на момент рассмотрения заявки действовал другой закон.

Постановление Федерального арбитражного суда Московского округа по делу N КА-А40/13302-05 от 20 апреля 2006 г. содержит правовую позицию, связанную с действием законодательства по заявкам, поданным в ФГУ «Палата по патентным спорам». Суд установил, что поскольку заявка N 2000727084 была подана 26.10.2000, то есть до даты вступления в силу ФЗ от 11.12.2002 N 166-ФЗ, то при оценке охраноспособности заявленного обозначения (ст. 6, 7 Закона) должны были применяться положения Закона в старой редакции. Таким образом, судом сделан вывод о том, что подлежит применению законодательство, действовавшее на момент подачи заявки.

Имеются арбитражные дела о применении укороченного срока исковой давности по недействительным сделкам. Срок с 10 лет до 3 был сокращен Федеральным законом от 21.07.2005 N 109-ФЗ, вступившим в силу с момента его опубликования (26.07.2005). Судами рассмотрены дела, в которых дан анализ действия законодательства во времени. Так, при рассмотрении дела было установлено, что согласно отметке канцелярии Арбитражного суда города Москвы ОАО «Марийский машиностроительный завод» обратилось в суд с иском о применении последствий недействительности ничтожной сделки 17.03.2005. Суд первой инстанции рассмотрел дело и вынес решение 22.12.2005, применив Закон от 21.07.2005. Последующие инстанции до Высшего Арбитражного Суда РФ сохранили действие первоначального решения. ВАС РФ установил, что истец обратился с заявлением в суд 17.03.2005, то есть до вступления в силу Федерального закона от 21.07.2005 N 109-ФЗ, и сделал вывод, что установленный на тот момент десятилетний срок исковой давности истцом пропущен не был.

По мнению ВАС РФ, оспариваемые в данном деле судебные акты нарушили единообразие в толковании и применении арбитражными судами норм права, что в соответствии с пунктом 1 статьи 304 АПК РФ является основанием для их отмены. Вынося решение об их отмене, Президиум Высшего Арбитражного Суда Российской Федерации использовал ст. 303, п. 2 ч. 1 ст. 305, ст. 306 АПК РФ.

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

Конституционный Суд РФ сформулировал следующее темпоральное правило: «Общим (основным) принципом действия закона во времени является распространение его на отношения, возникшие после введения его в действие, и только законодатель вправе распространить новые нормы на факты и порожденные ими правовые последствия, которые возникли до введения соответствующих норм в действие, т.е. придать закону обратную силу. При этом установление правил действия во времени и по кругу лиц новых норм, закрепляющих либо изменяющих права граждан, предусматривающих для них гарантии и льготы, должно осуществляться им с соблюдением требований Конституции Российской Федерации, в том числе вытекающих из принципа равенства (ст. 19, ч. 1 и 2), который гарантирует гражданам защиту от всех форм дискриминации при реализации прав и свобод».

Верховный Суд РФ, рассматривая применение изменений в законодательстве о ссуде военнослужащих, сделал ряд выводов относительно действия гражданского законодательства во времени. Суждения были основаны на п. 1 ст. 4 ГК РФ. Оценивая специальное законодательство, Верховный Суд РФ указал, что «положения пункта 7 статьи 13 Федерального закона от 27 мая 1998 года N 76-ФЗ «О статусе военнослужащих» (в редакции Федерального закона от 22 августа 2004 года N 122-ФЗ) вступили в силу с 1 января 2005 года, а поэтому действие этих положений распространяется на отношения, возникшие после 1 января 2005 года, и не применяется к отношениям, возникшим до указанной даты, поскольку это данным Законом прямо не предусмотрено.

Поэтому после 1 января 2005 года к правоотношениям, возникшим до этой даты между командованием и военнослужащим, связанным с выдачей последнему беспроцентной ссуды на обзаведение имуществом первой необходимости на срок до трех лет, должно применяться законодательство, действовавшее на момент получения ссуды».

Мытищинским городским судом вынесено решение от 24 сентября 2007 г. по делу N 2-1643/07, в соответствии с которым решение действующей комиссии по размещению объектов на территории Мытищинского муниципального района при Администрации Мытищинского муниципального района признано незаконным и нарушающим права и законные интересы граждан. Соответственно, выполняя данное решение, должностное лицо — глава Администрации — обязано устранить допущенные нарушения. Поскольку граждане обратились к нему с заявлением в ноябре 2006 г., то, рассматривая его, он должен руководствоваться законодательством на дату подачи заявления. Позднее, в июле 2007 г., произошли изменения законодательства. Тем не менее в какой бы день должностное лицо ни исполнило решение суда, оно должно действовать законно: руководствоваться законом, действовавшим в момент обращения граждан. Именно в то время (22 ноября 2006 г.) были нарушены права граждан, а суд обязал устранить допущенные нарушения.

Имеются и другие дела по другим предметам, но содержание их объединяет то, что поданные ранее заявления рассматриваются по законодательству, действовавшему на момент их подачи в управомоченный (регистрирующий) орган.

Руководствуясь действующим законом, субъекты права осуществляют разнообразные действия: обращаются с заявлениями в органы государственной власти и местного самоуправления, исполняют обязательства, используют правомочия. Каждое отдельно взятое деяние происходит в какой-либо момент времени, и именно тот момент определяет законодательство, подлежащее применению для оценки правомерности (противоправности, правоспособности) гражданина. Возникающие затем правоотношения, основанные на долженствовании другой стороны, являются производными от первоначальных. Соответственно в таких длящихся правоотношениях применяется законодательство, определенное на момент возникновения правоотношения. Действительно, гражданин обратился за предоставлением земельного участка, который ему был выделен, но окончательное оформление не было завершено, и на стадии оформления межевого дела принято законодательство, запрещающие такого рода сделки. Регистрирующий орган, выдавая при таких обстоятельствах свидетельство о праве собственности на землю, руководствуется не действующим законом, а законом, действовавшим на момент возникновения у гражданина права на государственную регистрацию.

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

Обратная сила закона в гражданском праве: имеет ли он ее

В гражданском праве приоритет имеет сохранение стабильности рынка, уверенности участников сделок в завтрашнем дне. Обратная сила закона в данном случае исключена. Общие правила гласят, что к отношениям, возникшим до вступления закона в силу, применяется норма, действовавшая на момент их возникновения (ст. 4 ГК РФ). Договорные отношения консервируются в том виде, в каком они были задуманы (ст. 422 ГК РФ), даже в случае противоречия условий сделки более позднему закону.

Этот принцип реализуется и в правоприменении: должна использоваться норма, действующая в момент выполнения юридически значимого действия (подачи искового заявления, обращения с заявлением о регистрации права). Не придается обратная сила закону, вступившему в действие при выполнении дальнейших процедур.

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

Таким образом, исключение из аксиомы «Закон обратной силы не имеет» встречается в публичных отраслях права и только применительно к нормам, смягчающим положение лица, привлекающегося к ответственности. В остальных случаях обратная сила закону обычно не придается.

Записи созданы 4415

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Похожие записи

Начните вводить, то что вы ищите выше и нажмите кнопку Enter для поиска. Нажмите кнопку ESC для отмены.

Вернуться наверх