Huis Persoonlijke financiën Programmeren van Java: wanneer fouten optreden - dummies

Programmeren van Java: wanneer fouten optreden - dummies

Inhoudsopgave:

Video: Linux Tutorial for Beginners: Introduction to Linux Operating System 2024

Video: Linux Tutorial for Beginners: Introduction to Linux Operating System 2024
Anonim

Fouten in Java-toepassingen kunnen op verschillende tijdstippen optreden. U kunt echter in grote lijnen classificeren wanneer een fout optreedt in twee categorieën, tijdens compileertijd en runtime, zoals beschreven in de volgende secties.

Compileertijdfouten

De compiler converteert uw toepassingscode naar Java-bytecode. Tijdens dit proces is de door mensen leesbare code nodig die u schrijft en converteert deze naar iets dat de Java Runtime Environment (JRE) begrijpt.

Om dit proces uit te voeren, moet de compiler de code parseren, wat betekent dat het de code leest op een manier die ondubbelzinnig precies bepaalt wat u wilt dat de toepassing doet, wanneer u wil dat het het doet en hoe je wilt dat de taak wordt volbracht. Als u de regels voor het schrijven van eenduidige code overtreedt, geeft de compiler een foutmelding weer. Dit bericht is eigenlijk een soort uitzondering.

Parsing betekent dat u de ingevoerde gegevens, zoals code in een voor mensen leesbare vorm, leest en deze in iets anders verandert, zoals Java-bytecode. Een toepassing kan ook gebruikersinvoer parseren. Een gebruiker kan bijvoorbeeld een tekenreeks typen waarvan de toepassingscode een getal wordt.

Dus, parsing is de handeling van het lezen van een bepaald type invoer, het interpreteren van die invoer op een specifieke manier en het produceren van uitvoer op basis van de geïnterpreteerde invoer. Een parser genereert een foutmelding als de invoer niet is wat hij verwacht.

Als de gebruiker bijvoorbeeld een tekenreeks invoert die de letter C bevat en u een tekenreeks verwachtte die een getal bevat, zoals 123, genereert de parser een uitzondering die aangeeft dat de invoer onjuist is.

Compileertijdfouten zijn de gemakkelijkste om te verwerken omdat de compiler u normaal precies vertelt wat er fout is en waar de fout is opgetreden. Zelfs als de informatie niet exact is, brengt de compiler u in ieder geval naar het rechtergedeelte van de afgebroken code, zodat u kunt zoeken naar de fout die erin zit.

Om ervoor te zorgen dat iedereen precies begrijpt hoe de Java-taal moet werken, maken ontwikkelaars hiervoor een specificatie. Deze specificatie bevat de taalelementen in een speciale taal genaamd Backus-Naur Form (BNF). Het gebruik van BNF is een uiterst precieze methode om een ​​taal te beschrijven, zodat niemand het risico loopt verkeerd geïnterpreteerd te worden.

U kunt een voorbeeld van de BNF voor de Java-taal bekijken bij Department of Computer Science - Daimi. Maak je niet al te veel zorgen over het kunnen lezen van deze specificatie. De meeste ontwikkelaars leren nooit om de BNF te interpreteren voor de talen die ze gebruiken - dat is het domein van de ontwikkelaars van compilers.

Runtime-fouten

De Java-compiler kan niet elke fout in uw code vinden. Als de vorm van de code correct is (dat wil zeggen dat u geen fouten hebt gemaakt bij het typen van de elementen die de toepassing maken), vindt de compiler de fout niet.

Als u bijvoorbeeld een numerieke waarde naar 5 in plaats van 4 initialiseert, kan de compiler de fout niet voor u vinden, omdat de compiler geen idee heeft dat u werkelijk 4 wilt typen. Dit soort fouten creëert runtime-fouten : fouten die zich op enig moment tijdens de uitvoering van de toepassing voordoen.

Runtime-fouten kunnen op allerlei tijdstippen optreden. Sommige fouten treden vaker op specifieke tijden op. In de volgende lijst vindt u enkele ideeën over wanneer runtime-fouten optreden:

  • Initialisatie: Wanneer de toepassing voor het eerst wordt gestart - voordat deze een interface voor de gebruiker weergeeft of nuttig werk uitvoert, wordt deze uitgevoerd een initialisatiefase. Dit is wanneer het instellen van een variabele op het onjuiste type of het proberen om een ​​variabele te gebruiken voordat je het initialiseert, opgemerkt zal worden. Veel resourcegerelateerde fouten komen ook voor tijdens de initialisatie, omdat de meeste applicaties tijdens deze periode benodigde bronnen openen.

  • Bedrijfsmodus: Nadat een toepassing is geïnitialiseerd, bevindt deze zich in de bedieningsmodus. Als het een gebruikersinterface heeft, begint het interactie te hebben met de gebruiker. Dit is het moment waarop gebruikersinput het belangrijkst is.

    U vindt op dit moment ook onjuist geïnitialiseerde variabelen omdat de gebruiker (of de ontvanger van de uitvoer van de toepassing, zoals het systeem) ziet dat de uitvoer incorrect is. Gebruikersverzoeken voor bronnen, zoals een gegevensbestand, creëren ook fouten tijdens deze periode.

  • Achtergrondverwerking: De meeste achtergrondverwerkingsfouten komen voort uit de omgeving (zoals het verlies van een netwerkverbinding), ontbrekende bronnen (zoals een verloren bestand), onjuist geïnitialiseerde variabelen of fouten in de manier waarop u de toepassing hebt verteld om een ​​taak uit te voeren. Sommige taken worden vaker op de achtergrond uitgevoerd dan andere.

    Het afdrukken van een document of het downloaden van bronnen van internet wordt bijvoorbeeld meestal op de achtergrond uitgevoerd, terwijl de gebruiker blijft werken met de toepassing op de voorgrond.

  • Afsluiten: Wanneer de gebruiker (inclusief de systeemaccounts) de toepassing vertelt dat deze niet langer nodig is, doorloopt de toepassing een afsluitingsfase. Tijdens deze afsluitingsfase sluit de toepassing bestanden en voert andere huishoudelijke klusjes uit die ervoor zorgen dat de toepassing geen rommel achterlaat voor het besturingssysteem.

    De meest voorkomende fouten die tijdens deze fase kunnen optreden, zijn het niet vrijgeven van bronnen die uw toepassing heeft gebruikt en het niet opslaan van gegevens op schijf. Uiteraard kunnen coderingsfouten op elk moment optreden en deze werkingsfase vormt hierop geen uitzondering. Je zou de applicatie kunnen vertellen om vijf bestanden te sluiten als er maar vier open zijn.

De JRE geeft de meeste runtimefouten weer die hij als uitzonderingen detecteert. De JRE zal echter niet elke fout in uw toepassing ontdekken.Je moet ook kijken naar de output van je applicatie om te bepalen of de output overeenkomt met de verwachtingen die je hebt voor een bepaalde input.

Bovendien is het belangrijk om te kijken naar de status van alle bronnen die u gebruikt om ervoor te zorgen dat ze op geen enkele manier worden beschadigd. U moet er bijvoorbeeld voor zorgen dat alle gegevens die u in een bestand moet opslaan, daadwerkelijk in het bestand terechtkomen wanneer uw toepassing wordt afgesloten.

Java 8 heeft een sterkere nadruk op beveiliging, wat betekent dat u meer SecurityException-exemplaren zult zien terwijl u met uw toepassing werkt.

Het zien van een toename van beveiligingsuitzonderingen betekent niet dat uw code defect is of dat Java 8 vol zit met bugs - het betekent dat Java 8 automatisch lokaliseert en vertelt u over problemen die beveiligingsproblemen kunnen veroorzaken als mensen uw applicatie gebruiken.

De documentatie van SecurityException wordt weergegeven op Java. netto. Natuurlijk wil je weten waar al het rumoer over gaat.

Programmeren van Java: wanneer fouten optreden - dummies

Bewerkers keuze

Hoe u Flash-video maakt en codeert - dummies

Hoe u Flash-video maakt en codeert - dummies

Als de pagina's die u maakt, zijn gewonnen ' t kan worden bekeken op mobiele apparaten (zoals een iPad of een smartphone), kunt u webpagina's maken met prachtige Flash-video. Adobe Flash Professional CS6 heeft een eigen ingebouwde video-encoder. Full-motionvideo in Flash is iets heel moois. U past de video aan voor het bekijken door de doelgroep ...

Hoe een aanpasbare interface te maken in CSS3 - dummies

Hoe een aanpasbare interface te maken in CSS3 - dummies

De grote variëteit en soorten schermen gebruikt om informatie weer te geven, maakt het nodig dat uw CSS3-commando's de gebruiker toestaan ​​om het formaat van de elementen naar wens aan te passen. In de meeste gevallen kunt u de gebruiker eenvoudig toestaan ​​om het element op elke gewenste grootte te maken. Er kunnen zich echter situaties voordoen waarin u de grootte van de grootte moet controleren ...

Hoe u een eenvoudige tabel op uw webpagina maakt - dummies

Hoe u een eenvoudige tabel op uw webpagina maakt - dummies

Tabellen laten u organiseer informatie op uw webpagina en geef het een georganiseerde uitstraling die uw bezoekers nuttig zullen vinden. Bij gebruik zoals bedoeld, hebben tabellen rijen en kolommen. Voor elke spot waar een rij en kolom elkaar kruisen, hebt u een tabelcel. Elke cel kan zijn eigen opmaak hebben: de gegevens erin ...

Bewerkers keuze

Hoe Postproduction Shareninging Filters werken - dummies

Hoe Postproduction Shareninging Filters werken - dummies

Verscherpingsfilters werken in postproductie door de randen (of aangrenzende gebieden met tonaal contrast) te benadrukken aan elkaar) in een afbeelding. Ze creëren een fijne highlight aan de donkere kant van de rand en een piepklein lowlight aan de lichtere kant van de rand. Dit toegevoegde contrast zorgt ervoor dat de randen er scherper uitzien vanaf een ...

HDR Work-Flow voor foto's met één belichting - dummies

HDR Work-Flow voor foto's met één belichting - dummies

In grote lijnen, enkele belichting hoog dynamisch bereik volgt dezelfde workflow als HDR-fotografie tussen haakjes. Er kunnen kleine verschillen zijn, dus hier is een overzicht van de werkstroom: configureer uw camera voor single-shot HDR. Het enige dat u zoekt, is de beste foto die u kunt maken. Besteed aandacht aan de lichtomstandigheden, het onderwerp, beweging en ...

Geavanceerde compacte en superzoomcamera's voor HDR-fotografie - dummies

Geavanceerde compacte en superzoomcamera's voor HDR-fotografie - dummies

Stap omhoog van compacte digitale camera's binnen het budgetbereik, vindt u duurdere compacte digitale camera's voor HDR-fotografie, ook wel high-end compacts, superzoomlenzen en dSLR-look-alikes genoemd. Er zijn zoveel vaak overlappende categorieën dat het je hoofd laat draaien. De twee dingen die deze reeks camera's gemeen hebben, zijn hun ...

Bewerkers keuze

In te schakelen Class Tracking in QuickBooks 2013 - dummies

In te schakelen Class Tracking in QuickBooks 2013 - dummies

Om activity-based costing te gebruiken (ABC ) in QuickBooks 2013 moet u de QuickBooks Class Tracking-functie inschakelen. Met Class Tracking kunt u inkomsten- en onkostentransacties categoriseren als niet alleen vallen in inkomsten- en uitgavenrekeningen, maar ook als vallen in bepaalde klassen. Volg deze stappen om Class Tracking in QuickBooks in te schakelen: Kies Bewerken → Voorkeuren ...

Gebruikt om een ​​exemplaar van een QuickBooks-gegevensbestand te gebruiken - dummies

Gebruikt om een ​​exemplaar van een QuickBooks-gegevensbestand te gebruiken - dummies

Ongeacht of de client verzendt handmatig een accountantskopie van een QuickBooks-gegevensbestand, e-mails een accountantsexemplaar, of verzendt een accountantskopie via de Intuit-bestandsoverdrachtservice, u gebruikt de kopie van de accountant door Bestand → Verzend bedrijfsdossier → Accountantskopie → Open & converteer overzetten te kiezen Bestand commando. Wanneer u deze opdracht kiest, geeft QuickBooks een ...

Hoe Audit Trails te gebruiken in QuickBooks - dummies

Hoe Audit Trails te gebruiken in QuickBooks - dummies

Als u besluit om meerdere gebruikers toegang te geven tot de QuickBooks-gegevens bestand, zult u de QuickBooks Audit Trail-functie waarderen, die bijhoudt wie welke wijzigingen aan het QuickBooks-gegevensbestand aanbrengt. U kunt transacties niet verwijderen uit de lijst of geschiedenis van de audittrail, behalve door gegevens te archiveren en te condenseren. Audit trail inschakelen ...