Trots att Java är en gammal språkfunktion är undantagshanteringskoden en av de minst förstådda delarna av många system. Flera studier har analyserat egenskaperna hos undantagshantering kod, försöker identifiera vanliga metoder eller ens koppla sådana metoder till programvara buggar. Få verk har emellertid undersökt undantagshanteringsproblem ur utvecklarnas synvinkel. Inget av arbetena har fokuserat på att upptäcka riktlinjer för hantering av undantag som antagits av nuvarande system och som sannolikt kommer att vara en drivkraft för gemensam praxis. I detta arbete genomförde vi en kvalitativ studie baserad på halvstrukturerade intervjuer och en enkät vars syfte var att undersöka de riktlinjer som är (eller bör följas) av utvecklare i deras projekt. Inledningsvis genomförde vi halvstrukturerade intervjuer med sju erfarna utvecklare, som användes för att informera om utformningen av en enkät som riktade sig till en bredare grupp av Javautvecklare (dvs. en grupp aktiva Javautvecklare från toppstjärniga projekt på GitHub). Vi mejlade 863 utvecklare och fick 98 giltiga svar. Studien visar att det vanligtvis finns riktlinjer för undantagshantering (70 %) och oftast är implicita och odokumenterade (54 %). Vår studie identifierar 48 undantagshanteringsriktlinjer relaterade till sju olika kategorier. Vi undersökte också hur sådana riktlinjer sprids till projektgruppen och hur överensstämmelse mellan kod och riktlinjer verifieras; vi kunde observera att enligt mer än hälften av respondenterna är riktlinjerna både spridda och verifierade genom kodkontroll eller kodgranskning. Våra resultat ger mjukvaruutvecklingsteam ett sätt att förbättra riktlinjerna för undantagshantering baserat på insikter från praxis av 87 programvaruprojekt.
I REF studerade de riktlinjer för hantering av undantag som antagits av Javautvecklare.
Unveiling Exception Handling Guidelines Adopted by Java Developers
{'venue': '2019 IEEE 26th International Conference on Software Analysis, Evolution and Reengineering (SANER)', 'journal': '2019 IEEE 26th International Conference on Software Analysis, Evolution and Reengineering (SANER)', 'mag_field_of_study': ['Computer Science']}