Il existe un principe général du droit selon lequel "la loi ne dispose que pour l'avenir ; elle n'a point d'effet rétroactif" (art. 2 du code civil). En matière pénale, ce principe possède même une valeur constitutionnelle : l’article 8 de la Déclaration des droits de l'Homme et du citoyen prévoit que "nul ne peut être puni qu’en vertu d’une loi établie et promulguée antérieurement au délit".
Ce principe général de non-rétroactivité constitue un corollaire du concept de sécurité juridique. Ce concept limite les possibilités de rétroactivité de la loi. La loi ayant pour but d’ordonner les relations sociales, elle ne saurait changer ultérieurement les règles du passé, car cela entraînerait nécessairement du désordre.
Les décisions de justice possèdent un effet inverse : elles sont toujours rétroactives puisqu'elles viennent trancher un litige qui est né antérieurement. Néanmoins, elles le font au nom d’une règle existant à l’époque, et leur rétroactivité ne consiste en réalité qu’en une remise en ordre des rapports entre les parties.
Un problème se pose cependant lorsque le juge décide de changer son interprétation de la règle applicable. Son jugement étant rétroactif, il impose aux parties une décision qu’elles ne pouvaient pas prévoir au moment d’agir, et porte ainsi atteinte au principe de sécurité juridique.
C’est la raison pour laquelle, dans certains cas, les magistrats utilisent leur pouvoir de modifier les effets de leurs décisions dans le temps, afin d’en limiter la rétroactivité. Par exemple, en 2010, le Conseil constitutionnel (décision QPC 2010-14/ 22 du 30 juillet 2010), puis la Cour de cassation (par trois arrêts d'octobre 2010) ont reporté de plusieurs mois les effets de leurs décisions qui invalidaient le régime légal de garde à vue. Le contraire aurait conduit à l’annulation de nombreuses procédures pénales en cours.