Sobes.tech
Junior — Middle

Сервердеги 500 ката себептерин аныктоого негизги белгилер кандай?

sobes.tech AI

AIден жооп

500 Ката (Ички сервер катасы) сервер тараптан көйгөйдү көрсөтөт. Себебин аныктоо үчүн негизги белгилер:

  • Сервердин журналдары: журналдарды карап чыгуу (мисалы, Goда log пакети аркылуу) көбүнчө чакыруунун стек жана катанын так жерин көрсөтөт.
  • Goда panic: көзөмөлсүз panic 500 катасына алып келет. Кодду мүмкүн болгон panicтер үчүн текшерүү жана алардын recover аркылуу башкаруу себебин аныктоого жардам берет.
  • HTTP иштетүүчүлөрдөгү каталар: маалыматтарды туура эмес башкаруу, nil көрсөткүчтөр, маалымат базасы менен иштөөдө каталар.
  • Сервердин же көзкарандылыктардын туура эмес конфигурациясы.

Goда panicти башкаруу мисалы:

func handler(w http.ResponseWriter, r *http.Request) {
    defer func() {
        if err := recover(); err != nil {
            http.Error(w, "Ички сервер катасы", http.StatusInternalServerError)
            // катаны каттоо
        }
    }()
    // негизги код
}