Programos išėjimo būsena, dar vadinama grąžinimo kodu, yra skaičius, kurį programa perduoda operacinei sistemai, scenarijui ar kitam procesui, kuris iš pradžių jį vykdė, kai programa baigia vykdyti. Nėra realių taisyklių, ką reiškia skaičiai, naudojami kaip išėjimo būsena, nors nulis tradiciškai reiškia, kad programa buvo išjungta normaliai, o bet kokia vertė, kuri nėra nulis, reiškia, kad programa netikėtai nutraukta. Priskirdama numerį išėjimo būsenai, pradinė programa arba procesas, kuris iškvietė kodą, gali pasakyti, ar programa sėkmingai atliko reikalingas užduotis, ar reikia atlikti kitus veiksmus.
Beveik visos kompiuterių kalbos ir daugelis scenarijų kalbų turi tam tikrą mechanizmą arba funkciją, kuri gali grąžinti išėjimo būseną. Pasitaiko situacijų, kai programa gali tyčia nutrūkti veikiant, naudodama konkretų klaidos kodą, nurodantį, kad kažkas negerai, pvz., trūksta duomenų failo arba trūksta kompiuterio atminties. Programos, kurios aiškiai neapibrėžia išėjimo būsenos kodo, skambinančiai programai grąžins nulį, nebent operacinė sistema arba kalbos vertėjas nutrauks programą dėl klaidų.
Išėjimo būsena taip pat gali būti naudojama norint susisiekti su scenarijumi ar kitu procesu, grąžinant konkrečias reikšmes, kurios nurodo, kokių veiksmų reikia imtis toliau. Vienas iš pavyzdžių būtų scenarijus, skirtas palaikyti programą, nepaisant galimų laikotarpių, kai programa gali būti išjungta dėl priežiūros. Ši schema veiktų, kai scenarijus vykdo programą ir laukia, kol ji išeis. Programuotojai galėtų tai sutvarkyti taip, kad programa grąžintų vieną skaičių, reiškiantį, kad ji visam laikui išeina ir neturėtų būti paleista iš naujo, o kitas skaičius gali nurodyti scenarijui palaukti tam tikrą laiką ir tada iš naujo paleisti programą; vis dėlto trečioji reikšmė gali reikšti, kad programoje įvyko klaida ir reikia programuotojo dėmesio.
Išėjimo būsenos kodo naudojimas ryšiui yra patogus tam tikrose situacijose dėl saugumo ir kitų apribojimų, kuriuos kai kurios programos turi skirtingose operacinėse sistemose. Yra daug atvejų, kai programa negali susisiekti su savo iškvietimo procesu arba kita programa, kuri lygiagrečiai veikia toje pačioje sistemoje. Tokiose situacijose ryšio tarp programų parinktys apsiribotų sudėtingomis schemomis, apimančiomis bendrą atmintį, tinklo lizdų jungtis arba failų rašymą. Naudojant išėjimo būseną, paprasta informacija gali būti perduodama labai paprastu būdu, kuriam nereikia sukurti tinkintos sistemos.