Innehållsförteckning:
- Valfri hantering av fel
- Hantering mer specifik för mindre specifika fel
- Använda Objekt för att undvika undantag
Video: Encriptacion en Java (Algoritmo Personalizado) - Parte 1 @JoseCodFacilito 2024
Många av de Java-kodsexemplar som du hittar för lärande syftar till att inkludera felsökning i dem. Exemplen kommer inte att begrava dig vid feluppfångning, men de kommer att göra bra felsökningstekniker en del av programkoden när det är möjligt (och felfångstkoden döljer inte helt exemplet).
Med detta i åtanke ger följande avsnitt en översikt över de tekniker som används för att fånga fel. Du får se tre olika nivåer av felfällning som vanligtvis används i Java-program.
Feluppfångning är att upptäcka ett undantag och berätta för JRE att du planerar att göra något med det. JRE svarar genom att inte överföra felet till den som ringer till den aktuella metoden och istället litar på den nuvarande metoden för att åtgärda problemet.
Felinfångning är normalt förknippad med försöksdelen av ett försök … fångstutdrag, medan felhanteringen normalt är förknippad med fångstdelen av ett försök … fångstutdrag.
Valfri hantering av fel
Uttrycket "valfri felhantering" är lite av en missnöje. Det är endast valfritt eftersom Java inte kräver att du utför det som en del av att använda de olika objekten i din ansökan. Varje applikation du bygger bör innehålla en viss grad av felhantering, även om Java inte kräver att du lägger till den.
Att lägga till felhantering i varje applikation du skapar, även enkla testprogram, hjälper dig att bli skicklig i denna aspekt av Java-programmering och sätta dig inför utvecklare som inte följer denna praxis.
Felhantering är en handling att lösa ett undantag som ansökan har fastnat. I vissa fall innebär hantering av felet att ett meddelande skickas till användaren och begär en korrigering. Felhantering kan emellertid ta många former, några av dem är helt automatiserade och osynliga för användaren. Denna handling är normalt förknippad med fångstdelen av ett försök … fångstutdrag.
Hantering mer specifik för mindre specifika fel
De flesta applikationer kan generera mer än ett undantag. Dessutom kanske du inte kan detektera exakt vilka undantag en applikation kommer att generera. I detta fall måste du tillhandahålla flera fångstklausuler för försöket … fångstutlåtande. Varje fångstklausul är specialiserad på en viss typ av fel.
Dessutom kan du använda generiska undantagshanterare för sådana situationer när din ansökan stöter på fel som inte ligger inom det uppsättning som du ursprungligen förväntade dig.
Använda Objekt för att undvika undantag
Av alla de undantag som du kanske ser när du arbetar med Java är NullPointerException (eller NPE) den vanligaste och ibland den svåraste att diagnostisera. En NullPointerException händer när du skickar ett nullvärde till en Java-funktion som förväntade sig ett verkligt värde. Problemet är att inte varje situation som skapar en NPE är faktiskt ett problem.
Ibland förväntar du dig att du har ett nollvärde och behöver en metod för att hantera det. Tänk till exempel om situationen där du vill hitta ett visst värde i en lista över potentiella värden. Det är helt möjligt att du inte hittar det värde du vill ha, vilket resulterar i en nullvärdesavkastning.
Om du försöker att bearbeta nollvärdet får du en NPE. Eftersom du hade förväntat att nollvärden skulle inträffa kan det vara fruktansvärt att hitta felet.
Fram till nu var det svårt för mänskliga utvecklare att förstå det svartvita tänkandet på en dator. Java 8 ger nu alternativa objekt för att hantera situationen där ett returvärde från en funktion är valfritt snarare än nödvändigt.