enduser vriendelijke errormessages

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Software Developer Java

Java/Kotlin Developer Ben jij een ervaren Java/Kotlin developer met een passie voor het automatiseren van bedrijfsprocessen? Wil je graag deelnemen aan uitdagende projecten bij aansprekende klanten? En ben je op zoek naar een professioneel, ambitieus en dynamisch bedrijf om je carrière verder te ontwikkelen? Kom dan ons team bij Ritense in Amsterdam versterken! Zo ziet de functie eruit: Als Java/Kotlin developer bij Ritense ben je verantwoordelijk voor de ontwikkeling en implementatie van applicaties die bedrijfsprocessen automatiseren, zodat onze klanten slimmer, efficiënter en klantgerichter kunnen werken. Als developer ben je in de lead en zorg je voor de correcte oplevering van

Bekijk vacature »

Web Developer

Bedrijfsomschrijving ENGIE Nederland is onderdeel van de beursgenoteerde ENGIE Groep. ENGIE is actief in 70 landen, met wereldwijd 150.000 medewerkers. Als groep is het de missie om bij te dragen aan de verduurzaming van de wereld. ENGIE Energie biedt energiediensten aan particulieren en grootzakelijk en gaat de uitdagingen van de energietransitie aan door het beschikbaar maken van duurzame energie, het streven de klimaatverandering tot een minimum te beperken, leveringszekerheid te bieden en zorg te dragen voor een verantwoord gebruik van de beschikbare resources. ENGIE Energie investeert daarom in hernieuwbare energiebronnen zoals zon, wind en bio-gas. Functieomschrijving Heb jij veel ervaring

Bekijk vacature »

IT Infrastructuur Developer

IT Infrastructuur Developer Ben jij (bijna) klaar met je HBO studie in de richting van IT? Opzoek naar een spannende eerste baan, waar je ontzettend veel kan leren? Dan hebben wij de ultieme job voor jou! Voor een goede klant van ons in de financiële dienstverlening zijn wij opzoek naar een Junior Infrastructure Developer. Deze baan is een mooie kans om een sterke start te geven aan jouw carrière binnen de IT! De job Je werkt nauw samen met het Devops team, en zal je voornamelijk bezighouden met het automatiseren van infrastructure componenten. De componenten worden opgevraagd door het DevOps

Bekijk vacature »

Embedded Software Developer Games

Functie omschrijving Heb jij affiniteit met hardware en wil jij kleuren binnen een Qt framework? Spreek jij de talen C en of C ++? Dan ben ik wellicht opzoek naar jou! Voor een super gave opdrachtgever in omgeving Delft is er namelijk plek voor een nieuwe kracht! Dit bedrijf is gespecialiseerd in het ontwerpen van software voor een unieke game industrie. Wil jij betrokken worden bij een proces dat loopt van ontwikkeling tot installatie? Waarbij je bezig zult zijn met perfecte systemen die geleverd worden aan binnen en buitenland? Je zult in een team, samen met vier ontwikkelaars, de mooiste

Bekijk vacature »

Java Developer

Java Developers opgelet! Bij Luminis zijn ze opzoek naar jou. Lees de vacature en solliciteer direct. Luminis is een software- en technologiebedrijf met meerdere vestigingen. Vanuit deze vestigingen werken 200 professionals aan technisch hoogwaardige oplossingen voor klanten zoals KLM, Nike en Bol.com. Ook ontwikkelt Luminis eigen oplossingen op het gebied van cloud, Internet of Things, data intelligence, e-sports en e-learning. Luminis onderscheidt zich door aantoonbaar voorop te lopen in technologie en innovatie. Luminis heeft drie kernpunten die verankerd zitten in alles wat we doen: het omarmen van nieuwe technologie, meesterschap en kennis delen. Functiebeschrijving First things first! Het is belangrijk

Bekijk vacature »

Junior Fullstack Developer

Functie omschrijving Heb jij je universitair diploma Informatica afgerond en ben jij op zoek naar een startersfunctie waar jouw ontwikkeling in een hoog vaandel staat? Voor een softwarebedrijf in Amsterdam zijn wij op zoek naar een Junior Fullstack Developer. Je begint met een op maat gemaakte training om de kennis bij te spijkeren die jij nog mist. Uiteraard leer je het meeste tijdens je werk, maar de training geeft je hiervoor alvast de juiste handvatten. Je kunt het volgende verwachten! Jij ontwikkelt in technieken als Java, Javascript en SQL. Je werkt hierbij volgens de Agile/Scrum methode; Na het afronden van

Bekijk vacature »

Senior Java developer

Als Senior Developer bij Sogeti ben je onderdeel van onze toonaangevende best-gecertificeerde Java community. Deze bestaat uit ruim 100 gepassioneerde professionals. In teamverband lever je mooie prestaties. Daarmee draag je aan bij de meerwaarde die wij leveren aan onze top-opdrachtgevers. Geen werkdag is hetzelfde! Je bent voortdurend bezig met het oplossen van allerlei complexe vraagstukken binnen bedrijfskritische systemen. Een voorbeeld hiervan is een cliënt-volgsysteem bij Reclassering Nederland. Andere klanten waar wij onder andere voor werken: KPN, Philips, Nationale-Nederlanden, Kamer van Koophandel, ABN AMRO, Bovemij, Aval en de Nationale Politie. Natuurlijk krijg jij de mogelijkheid je verder te certificeren in dit vakgebied. We

Bekijk vacature »

Junior .NET Developer

Dit ga je doen Ontwikkelprocessen verder optimaliseren en verder ontwikkelen met C#; CI/CD-pipelines automatiseren; Ontwikkelen van herbruikbare componenten; Front-end pagina's gebruiksvriendelijk maken. Hier ga je werken Als junior .NET Developer kom je terecht binnen een grote en internationale organisatie. Zij streven naar een positieve impact op de mens, milieu en maatschappij. Het bedrijf is oorspronkelijk een familiebedrijf en werkt aan de productie van hoogwaardige en technische systemen voor de gezondheidszorg. Momenteel willen zij betere ontwikkelprocessen creëren op internationaal gebied en staat kwaliteit en veiligheid voor hun op nummer 1! Als junior .NET Developer werk je aan het ontwikkelen van verbeterde

Bekijk vacature »

Oracle APEX developer

Wat je gaat doen: Als Oracle APEX ontwikkelaar bij DPA werk je samen met collega’s aan de meest interessante opdrachten. Je zult je ervaring met SQL, PL/SQL, JavaScript, HTML en CSS inzetten om wensen van opdrachtgevers te vertalen naar technische oplossingen. Je werk is heel afwisselend, omdat DPA zich niet beperkt tot een specifieke branche. Zo ben je de ene keer bezig binnen de zorgsector, de andere keer is dit bij de overheid. Wat we vragen: Klinkt goed? Voor deze functie breng je het volgende mee: Je hebt een hbo- of universitaire opleiding afgerond Je hebt 2 tot 5 jaar

Bekijk vacature »

Microsoft Acess Developer

Functieomschrijving Wat ga je doen? Heb jij ongeveer 3 jaar ervaring als Software Developer, en komen de volgende kennisgebieden jou niet vreemd voor: MS Acces, C# & SQL? Vind jij het daarnaast leuk om maatwerk software te ontwikkelen voor klanten in een bijzondere branche? Lees dan snel verder! Als developer ben jij samen met een gemotiveerd team van 10 collega’s verantwoordelijk voor het creëren van aangemeten software voor klanten. Je bent klantvriendelijk en oplossingsgericht ingesteld, omdat het essentieel is om de klanten zo goed mogelijk te helpen met hun uitdagingen. Het is mogelijk om vanuit huis je werkzaamheden uit te

Bekijk vacature »

Back-End Web Developer

Als Back-End Web Developer bij Coolblue zorg je ervoor dat onze webshops elke dag een beetje beter zijn. Wat doe je als Back-End Web Developer bij Coolblue? Als Back-End Web Developer werk je met andere development teams samen om onze webshop zo optimaal mogelijk te laten werken en onze klanten blij te maken. Als backend developer weet je de weg in PHP, kan je in Typescript een microservice op zetten of ben je bereid om dit te leren. Ook Web Backend Developer worden bij Coolblue? Lees hieronder of het bij je past. Dit vind je leuk om te doen PHP

Bekijk vacature »

PHP Developer

Zie jij mogelijkheden om onze tooling technisch te verbeteren en uit te bouwen? Over Jobmatix Jobmatix is een innovatieve en internationale speler op het gebied van jobmarketing. Onze jobmarketing automation tool helpt organisaties bij het aantrekken van nieuw talent door vacatures digitaal, geautomatiseerd en op een efficiënte manier te adverteren en onder de aandacht te brengen bij de doelgroep op 25+ jobboards. Volledig performance-based, waarbij organisaties betalen op basis van cost per click of cost per applicant. Maandelijks wordt onze jobmarketing automation tool al gebruikt door vele directe werkgevers, intermediairs en mediabureaus, waaronder Picnic, Rijkswaterstaat, AdverOnline, Schiphol, DPA, Teleperformance en

Bekijk vacature »

Oracle APEX developer

Wat je gaat doen: Als Oracle APEX ontwikkelaar bij DPA werk je samen met collega’s aan de meest interessante opdrachten. Je zult je ervaring met SQL, PL/SQL, JavaScript, HTML en CSS inzetten om wensen van opdrachtgevers te vertalen naar technische oplossingen. Je werk is heel afwisselend, omdat DPA zich niet beperkt tot een specifieke branche. Zo ben je de ene keer bezig binnen de zorgsector, de andere keer is dit bij de overheid. Wat we vragen: Klinkt goed? Voor deze functie breng je het volgende mee: Je hebt een hbo- of universitaire opleiding afgerond Je hebt 2 tot 5 jaar

Bekijk vacature »

Low Code Developer - Consultant

Functie omschrijving Wil jij fungeren als een spin in het web en samenwerken met klanten? Voor een leuke en interessante opdrachtgever in omgeving Leiden zijn wij op zoek naar een Low Code developer die zich bezig gaat houden met het optimaliseren van bedrijfsprocessen bij klanten en het leiden van projecten. Ben jij toe aan een nieuwe uitdaging en heb jij verstand van datamodellering en NO CODE Platformen? Lees dan snel verder! Bij deze rol horen de volgende werkzaamheden: Je gaat geen code kloppen maar bedenken hoe applicaties eruit moet komen te zien. Je gaat werken met een non code platform,

Bekijk vacature »

Front end developer

Functie Het team bestaat uit User Experience designers, Data Scientists en Software Engineers met passie voor hun vak. De consultants en ontwikkelaars werken volgens de Design Thinking methode waarbij de eerste stappen van ontwerp en ontwikkeling zullen samenkomen in een proof of concept. Nadat is vastgesteld dat de oplossing voldoet aan de belangrijkste behoeftes worden producten of services gevalideerd door middel van korte iteraties. Hiermee zorgen ze ervoor dat het werk voldoet aan de technische vereisten en gebruikersbehoefte. Door het inzetten van de nieuwste technologieën die toekomstbestendig zijn weten ze klanten omver te blazen. Ook geven en organiseren ze veel

Bekijk vacature »
Tortuga web

tortuga web

14/08/2014 10:10:56
Quote Anchor link
Ik heb een databaseconnenctie gemaakt met PDO en de try-catch methode om eventuele fouten af te vangen. Nu heb ik alles draaiiende en wil het uploaden, maar dan met uservriendelijke foutmeldingen.
Als voorbeeld de verbinding met de database:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?php
    ini_set('display_errors',1); // 1 == on , 0 == off
    error_reporting(E_ALL | E_STRICT);

    //Connect to the dBase
    $db = array (
        'host' => 'localhost',
        'dbname' => 'home',
        'user' => 'root',
        'pass' => ''
    );
    try {
        $db = new PDO('mysql:host='.$db['host'].';dbname='.$db['dbname'], $db['user'], $db['pass']);
        $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
        $db->query("SET SESSION sql_mode = 'ANSI,ONLY_FULL_GROUP_BY'");
    }

    catch(PDOException $e) {
        $sMsg = '<p>
            Linenumber: '
.$e->getLine().'<br />
            File: '
.$e->getFile().'<br />
            Errormessage: '
.$e->getMessage().'
            </p>'
;
        trigger_error($sMsg);
    }

?>

Als ik nu bovenaan in het script de display_errors op 0 zet en de $sMsg omschrijf naar een vriendelijke errorregel, krijg ik geen enkele foutmelding meer, en verschijnt er een wit scherm. Eigenlijk wil ik dat er een melding komt en de pagina naar de vorige teruggestuurd wordt. Maar ik krijg dit niet voor elkaar. Wat doe ik fout?
 
PHP hulp

PHP hulp

25/04/2024 08:20:39
 
Erwin H

Erwin H

14/08/2014 10:26:01
Quote Anchor link
Normaal gesproken zorg je dat de exceptions, warnings etc niet zonder pardon naar het scherm worden gestuurd. Dat doe je dus door die foutrapportage uit te zetten en exception op te vangen in een catch blok. Vervolgens sla je de opgevangen fouten (waarvan je hebt besloten ze te willen tonen) op en op een later punt in je script controleer je of er fouten zijn opgevangen. Zo ja, dan toon je die en de rest van je content niet (of een bepaald deel niet), zo nee, dan toon je gewoon je normale pagina.
En het tonen doe je gewoon met een echo, niet met trigger_error, want dan kom je weer in het loopje van exceptions afvangen en geen foutmeldingen laten zien.
 
Tortuga web

tortuga web

14/08/2014 10:37:00
Quote Anchor link
Ja, dat is dus precies wat ik wil, maar ik weet niet hoe ik het moet doen. Zodra ik de display_errors op 0 zet, krijg ik het niet meer voor elkaar om welke foutmelding dan ook te genereren. Ik blijf hangen in een wit scherm.
 
Erwin H

Erwin H

14/08/2014 10:38:01
Quote Anchor link
Heb je mijn laatste regel wel gelezen?
 
Tortuga web

tortuga web

14/08/2014 10:44:17
Quote Anchor link
Ja, mijn laatste poging om er wat dan ook van te bakken is dit:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php
    ini_set('display_errors',0); // 1 == on , 0 == off
    error_reporting(E_ALL | E_STRICT);

    //Connect to the dBase
    $db = array (
        'host' => 'localhost',
        'dbname' => 'home',
        'user' => 'root',
        'pass' => ''
    );
    try {
        $db = new PDO('mysql:host='.$db['host'].';dbname='.$db['dbname'], $db['user'], $db['pass']);
        $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_SILENT);
        $db->query("SET SESSION sql_mode = 'ANSI,ONLY_FULL_GROUP_BY'");
        if $db = FALSE {
            return $sMsg = 'Kan geen verbinding maken';
        }
    }

    catch {
        echo $sMsg;
    }

?>

Ik blijf een wit scherm houden.
Ik heb 2 problemen in de syntax die ik nog niet helemaal begrijp, omdat ik nog behoorlijk worstel met OOP. Hoe formuleer ik de foutmelding zodanig dat die door de catch opgenomen wordt en hoe check ik of de verbinding gelukt is.
 
Erwin H

Erwin H

14/08/2014 10:54:46
Quote Anchor link
Een catch zonder aan te geven wat voor type exception moet worden opgevangen zal zelf een foutmelding genereren.... die je vervolgens niet ziet om je de foutmeldingen uit hebt staan.

Dus even terug.
Als je met exceptions gaat werken zijn er drie stappen.
1) bij elke fout, of onverwachte situatie (bepaal zelf wanneer dat is), gooi je een exception.
2) op bepaalde plekken in je code vang je die exceptions af in een try...catch blok. Je kan ook hier weer zelf bepalen waar je dat doet. Over het algemeen zal je verschillende niveaus vinden waarop je wil afvangen, omdat je ook verschillende niveaus hebt van problemen. Simpele problemen die je in de functie zelf direct kunt oplossen, grotere problemen die een effect hebben buiten de functie en zelfs fatale problemen die in feite je hele script nekken. Per fout bepaal je wat je doet en sla je de foutmelding eventueel op een in een variabele zodat je die later kunt gebruiken om te tonen.
3) Prik een plek in je script waarop je controleert of er meldingen zijn en toon die dan.

In code:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<?php
$msgs
= array();

function
connectToDb( array &$msgs ){
  try{
    //je probeert te connecten, lukt niet, gooi een fout
    throw new Exception( 'geen databaseverbinding' );
  }
catch( Exception $e ){
    //exception opgevangen, sla deze op
    $msgs[] = $e->getMessage();
  }
}


//connect met de db
connectToDb( $msgs );
?>

<html>
  <body>
  <?php
    //zijn er fouten? Zo ja, toon ze.
    if ( count( $msgs ) > 0 ){
      foreach( $msgs as $msg ){
        echo $msg;
      }
    }

  ?>

  </body>
</html>
Gewijzigd op 14/08/2014 10:55:53 door Erwin H
 
Tortuga web

tortuga web

14/08/2014 11:19:00
Quote Anchor link
Dank je, ben hiermee alweer een stap verder, maar nog niet helemaal wat ik wil, want de foutmelding is niet geen databaseverbinding, maar SQLSTATE[HY000] [1049] Unknown database 'home'. Hoe komt dit?
Voor de volledigheid, dit is wat ik heb:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<?php
    ini_set('display_errors',0); // 1 == on , 0 == off
    error_reporting(E_ALL | E_STRICT);

    //Connect to the dBase
    $db = array (
        'host' => 'localhost',
        'dbname' => 'home',
        'user' => 'root',
        'pass' => ''
    );
    $sMsg = array();
    try {
        $db = new PDO('mysql:host='.$db['host'].';dbname='.$db['dbname'], $db['user'], $db['pass']);
        throw new Exception ('Kan geen verbinding maken');
    }

    catch(Exception $e) {
        $sMsg[] = $e->getMessage();
    }

?>

<html>
  <body>
  <?php
    //zijn er fouten? Zo ja, toon ze.
    if ( count( $sMsg ) > 0 ){
      foreach( $sMsg as $msg ){
        echo $msg;
      }
    }

  ?>

  </body>
</html>
 
Erwin H

Erwin H

14/08/2014 11:33:35
Quote Anchor link
Hoe dat kan? Omdat je 'dus' geen database 'home' hebt. Die foutmelding wordt nu gegooid door PDO.

Enneh, als het nu wel lukt gooi je gewoon alsnog een exception op regel 15. Handig.... Je begrijpt natuurlijk dat je alleen een exception moet gooien als er ook daadwerkelijk iets mis gaat, niet gewoon altijd.
 
Tortuga web

tortuga web

14/08/2014 11:44:53
Quote Anchor link
Natuurlijk bestaat home niet, dat doe ik om de foutmelding te kunnen testen. Als de verbinding wel lukt, weet ik niet wat voor foutmelding er geproduceerd wordt, in geval de verbinding faalt.
En natuurlijk, de exception moet alleen als er iets foutgaat, maar hoe doe ik dat in PDO? En waarom komt de melding "Kan geen verbinding maken" niet op het scherm?
 
Erwin H

Erwin H

14/08/2014 12:02:23
Quote Anchor link
Die zelf gegooide exception wordt nooit gegooid, omdat PDO ervoor al een exception gooit (dat de database niet bestaat). Daarna wordt in dat blok de script executie gestopt en alles daarna wordt dus niet meer uitgevoerd, de executie gaat direct naar de catch.
Aangezien PDO zelf exceptions gooit, hoef je daar zelf niets meer te doen. Als alles goed gaat gooi je nooit een exception, als het fout gaat doet PDO het al.
 
Tortuga web

tortuga web

14/08/2014 12:19:37
Quote Anchor link
Oké, ik begin het te begrijpen.
En ik heb het aan de praat.
Heel hartelijk dank, ben ik weer wat wijzer geworden.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.