Стацк траце (или трацебацк) је излаз који приказује стек метода ваше апликације. Обично ћете га видети на свом терминалу када ваша апликација наиђе на грешку.

Као што име каже, структура података стека чува методе у трагу стека. Метода којом почиње извршавање програма је на дну стека, док је она која производи праћење стека на врху.

Праћење стека може бити веома корисно када отклањате грешке у свом коду.

Зашто је праћење стека важно?

Праћење стека је важан алат за отклањање грешака. Даје вам детаљне информације као што су тип грешке, метод у којем се догодила, ред у вашем коду где се догодила и путања датотеке.

За искусног програмера, ове информације су златни рудник за разумевање шта је тачно пошло по злу и где.

Као програмер, такође можете тражити од свог програма да креира праћење стека на захтев. Ово може бити посебно корисно за одржавање кода и решавање проблема.

Како извести траг стека

У зависности од ваше верзије компајлера, највероватније ћете добити читљив траг. Читљив повратни траг пружа текст о грешци лак за коришћење, за разлику од нормалног праћења. Ово посебно важи за нове компајлере. Стога је најбољи начин да научите о траговима стека да их сами произведете.

instagram viewer

Можете произвести праћење стека без икаквих грешака у вашем коду. Да бисте то урадили, једноставно користите думпСтацк методом јава.ланг. Тхреад класа. Приказаће све методе које су позване, директно од оне која позива думпСтацк. Метод позива ће бити онај на врху структура података стека.

Ево примера програма који експлицитно генерише праћење стека:

класаСтацкТрацеДемо{
јавностистатичнапразнинаглавни(Стринг[] аргументи){
дан();
}

статичнапразнинадан(){
хоурс();
}

статичнапразнинасати(){
минута();
}

статичнапразнинаминута(){
инт а = 24 * 60;
Систем.оут.принтлн (а + " минута у дану");
Тхреад.думпСтацк();
}
}

Излаз:

1440 минута у дану
јава.ланг.Изузетак: Гомилатраг
на јава.басе/јава.ланг. Тхреад.думпСтацк (Тхреад.јава: 138)
атСтацкТрацеДемо.минута(СтацкТрацеДемо.јава:17)
атСтацкТрацеДемо.часова(СтацкТрацеДемо.јава:11)
атСтацкТрацеДемо.дан(СтацкТрацеДемо.јава:7)
атСтацкТрацеДемо.главни(СтацкТрацеДемо.јава:3)

У овом излазу можете приметити да повратни траг показује како је програм позвао сваки од њих Јава метода и на ком броју реда у свом изворном коду. Метод који је генерисао траг стека је онај који је приказан на врху стека. Метода која га је позвала је на линији испод њега, и тако даље.

Беионд тхе Стацк Траце

Подразумевано, када ваш Јава програм наиђе на грешку, он ће се зауставити и приказати праћење стека. Међутим, можете изабрати да се са овим грешкама рукујете елегантно уместо да приказујете поруке које могу збунити крајње кориснике.

Можете побољшати руковање грешкама вашег програма коришћењем блока три...цатцх() за снимање изузетака. Такође је важно размотрити — и разумети — различите врсте грешака на које ваши програми могу да наиђу.