[oop] InvalidArgumentException

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Fullstack Developer

Functieomschrijving Voor een erkende werkgever in regio Etten-Leur zijn wij op zoek naar een Fullstack Developer met PHP/Laravel ervaring. Je gaat aan de slag met het bouwen van maatwerk software voor klanten die actief zijn in een specifieke markt. Als fullstack developer ben je samen met een enthousiast team van 7 collega’s verantwoordelijk voor de ontwikkeling, beheer en innovatie van informatiesystemen voor klanten in een specifieke branche. Verder ondersteun je complexe uitdagingen van klanten. Je brengt hun wensen in kaart en vertaalt deze door naar maatwerk software. Ervaring met Laravel is een must. Om de klant zo goed mogelijk te

Bekijk vacature »

Ambitieuze medior developer

Wat je gaat doen: Heb jij al een paar jaar ervaring als developer maar wil jij naar the next level? In ons NextLevelDev Programma helpen wij jou om de volgende stap te zetten: een mooi programma aan trainingen op het gebied van Java, hippe frameworks, Agile/Scrum, OCP-certificering en optioneel: andere JVM-talen als Kotlin en Scala; Cloud (AWS, Azure, GCP) Soc Of beter nog, wat wil jij doen? Binnen DPA GEOS zijn we dan ook op zoek naar enthousiaste Java developers om ons development team te versterken. Als Java developer werk je in Agile/Scrum teams bij onze klanten en daarbij kun

Bekijk vacature »

Junior/medior Back end developer PHP, Laravel

Functie Jij als ontwikkelaar komt te werken in een team bestaande uit 4 back end programmeurs, 2 vormgevers/ Front end developers en een online marketeer. Qua persoonlijkheden is het team erg gevarieerd van sportfanaten tot gameliefhebbers en Golfers. Een ding heeft iedereen hier gemeen; Passie voor goede code. In jouw rol zul je voor veel van je tijd je bezig houden met het ontwikkelen van maatwerk features en applicaties. Daarnaast hebben wij op aanvraag ook wel eens een website of onderhoudsklusje, die opgepakt moet worden en hier ben jij ook niet vies van. Jij als full stack developer zult dus

Bekijk vacature »

C# .NET Developer

Dit ga je doen Je richt je op het doorontwikkelen en herstructureren van het platform; Je werkt in teamverband en zelfstandig aan uitdagende projecten voor verschillende klanten; Softwareontwikkeling middels C# .NET; Je staat in contact met verschillende opdrachtgevers om de klantwensen te bespreken en deze vervolgens te ontwikkelen; Verbeteren van bedrijfsprocessen; Implementaties. Hier ga je werken Als .NET Developer kom je te werken in de regio van Lelystad bij een organisatie die met toonaangevende klanten uit heel Nederland samen werkt. De producten en diensten van de organisatie bereiken miljoenen Nederlanders. Hierbij komt een grote hoeveelheid informatie kijken en deze moet

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 Front-End Developer

Als Senior Front-End Developer bij Coolblue verbeter je de gebruiksvriendelijkheid van onze webshop voor miljoenen klanten. Wat doe je als Senior Front-End Developer bij Coolblue? Als Senior Front-end Developer werk je aan de gebruiksvriendelijkheid van onze webshop voor miljoenen klanten. Je vindt het leuk om samen te werken met de UX designer om stories op te pakken. Daarnaast ben je trots op je werk en verwelkomt alle feedback. Ook Senior Front-end Developer worden bij Coolblue? Lees hieronder of het bij je past. Dit vind je leuk om te doen Verbeteren van de gebruiksvriendelijkheid van onze webshop voor miljoenen klanten. Nadenken

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 »

Java Developer / Sociaal domein

Dit ga je doen Nieuwbouw en doorontwikkeling; Beheer en wanneer nodig onderhoud; Bijdrage leveren in het functioneel- en technisch ontwerptraject; Analyseren van productie verstoringen; Meedenken over vernieuwingen en verbeteringen. Hier ga je werken De organisatie waar jij komt te werken focust zich op software development met een maatschappelijk tintje. De afdeling software ontwikkeling bestaat uit vijf verschillende scrum teams, met allen hun eigen focus gebied. Zo zijn er een aantal teams die zich focussen op specifieke applicaties, maar is er ook een team gericht op projecten. Binnen de organisatie staat innovatie en kwaliteit voorop. Een aantal applicaties draait nog op

Bekijk vacature »

Software Programmeur

Functie omschrijving Voor onze opdrachtgever in omgeving Rotterdam zijn wij opzoek naar een software programmeur die goed kan schrijven in de talen C of C++ en die het leuk vind om te werken met Linux! Werkzaamheden Programmeur Je bent bezig met het ontwikkelen van software en webapplicaties. Je kunt technische klussen uitvoeren op locatie. Je onderhoudt contact met de projectleider om er zeker van te zijn dat een project goed verloopt. Je zult klanten ondersteunen. Verder zul je technische ontwerpen en gebruikersdocumentaties schrijven en deze onderhouden. Bedrijfsprofiel Dit bedrijf wil de klanten een volledige oplossing kunnen bieden, waarbij ze een

Bekijk vacature »

API Developer Red Hat Fuse

Dit ga je doen Als API Developer zal je verantwoordelijk zijn voor het: het maken van API's en het correct laten draaien van de API's op het platform. Hierdoor kom je in aanraking met Red Hat Fuse, Springt Boot, 3Scale, Red Hat SSO, Openshift en Azure DevOps; zorgen voor de kwaliteit van de ontwikkeling, integratie en prestaties van de API's; zorgen voor een stabiel integratieplatform. Hier ga je werken Deze organisatie is een toonaangevende speler in de vastgoedbranche en telt momenteel ruim 500 medewerkers. Met meer dan 150 applicaties staat er een complex applicatielandschap dat hoofdzakelijk op OpenShift, Azure en

Bekijk vacature »

Applicatieontwikkelaar ABAP

Bedrijfsomschrijving Functieomschrijving De kandidaat zal worden ingezet binnen een van de DevOps teams binnen SCI (Service Centrum Inburgering) voor het ontwerpen en bouwen in SAP ABAP van de binnen SCI gebruikte informatiesystemen. Voornaamste voorkomende werkzaamheden zijn het aanpassen van en bouwen van nieuwe programmatuur in ABAP (Objects), waarbij ook gebruikt wordt gemaakt van DDD (Domain Driven Design) en het opstellen/aanpassen van Functionele/Technische ontwerpen. Daarnaast moeten ook formulieren met SAP Smartforms worden aangepast. Verder speelt de overgang naar SAP4Hana en SAP CPI. Vanwege het veelvuldig gebruik van SAP PO is kennis hiervan een pré. Achtergrond opdracht Momenteel werken meerdere DevOps teams

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 »

Senior Front end developer Angular

Functie Er zijn momenteel 5 SCRUM-teams waarvan drie gefocust zijn op DevOps en de huidige projecten en twee op innovatie van de platformen. Jij zal onderdeel worden van het innovatie Scrum team. De 2 multidisciplinaire innovatie teams bestaan momenteel uit 14 werknemers. Jij als senior Front end developer wordt onderdeel van onze innovatieteams. De innovatieteams houden zich bezig met het door ontwikkelen van de huidige producten en denken na over nieuwe functionaliteiten. Binnen de rol van Front end developer krijg je veel vrijheid en kan je je dag zelf indelen. Dingen waar jij je dagelijks mee bezig zult houden is

Bekijk vacature »

Ambitieuze Junior/Medior Low-code Developers gezoc

Bedrijfsomschrijving Transformeer bedrijven met jouw expertise in innovatieve technologie Ben je een bedreven softwareontwikkelaar met ervaring in Low-code platformen, of sta je te popelen om je in deze baanbrekende oplossing te verdiepen? Wij zijn op zoek naar jou! Ons klantenbestand groeit en we willen ons team uitbreiden met deskundige en leergierige Low-code specialisten. Is het jouw passie om organisaties te ondersteunen in hun digitale transformatie en maatwerkoplossingen te bieden met behulp van geavanceerde software? Wij zijn een vooruitstrevend bedrijf dat dagelijks werkt aan het oplossen van complexe vraagstukken om de digitale ambities van onze klanten te realiseren. Functieomschrijving Ontwikkel op

Bekijk vacature »

IoT Software Developer PHP

Functie omschrijving Voor een klein softwarebedrijf in Breda, zijn wij op zoek naar een IoT software developer met kennis van PHP. In deze rol wordt je verantwoordelijk voor het vernieuwen van het multimedia platform van een super tof bedrijf in Breda. Je gebruikt PHP als programmeerlaag, en bent in staat om de helicopterview te pakken / projectmatig te werken. Jouw werkzaamheden zien er als volgt uit: Je gaat aan de slag met de ontwikkeling en vernieuwing van het "intern" ontwikkelde multimedia platform. Je neemt de lead in het moderniseren van het platform door het deels opnieuw op te zetten of

Bekijk vacature »
Ozzie PHP

Ozzie PHP

10/03/2014 21:57:33
Quote Anchor link
Ola,

Als ik op php.net kijk bij de omschrijving van InvalidArgumentException dan staat er:

"Exception thrown if an argument is not of the expected type."

Nu vraag ik me af of je een InvalidArgumentException ook kunt gooien op het moment dat er een key/id wordt aangeroepen die niet bestaat. In principe zou je dan kunnen zeggen dat het argument ook ongeldig is. Je hebt immers iets aangeroepen dat niet bestaat.

Nu zie ik dat PHP ook een OutOfBoundsException kent:

"Exception thrown if a value is not a valid key. This represents errors that cannot be detected at compile time."

Als ik het goed begrijp zou dit de exception zijn die je moet gooien als een key niet bestaat?

Ik vind het een lastig onderscheid eerlijk gezegd. Waarom niet uitsluitend de InvalidArgumentException gebruiken? Hoe doen jullie dat?
 
PHP hulp

PHP hulp

05/05/2024 00:15:54
 
Ward van der Put
Moderator

Ward van der Put

10/03/2014 22:25:46
Quote Anchor link
Je kunt zoeken naar een key die niet bestaat. Denk bijvoorbeeld aan een record-ID voor een klantnummer, een artikelnummer, enzovoort. Dat is dus niet per se een exception, maar vaak een normale en te verwachten toestand van een systeem.
 
Ozzie PHP

Ozzie PHP

10/03/2014 22:31:42
Quote Anchor link
Dat klopt Ward, maar er zijn ook situaties als deze denkbaar:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php

$foo
= $config->get('foo');

?>

Hier ga ik er vanuit dat er een 'foo' key bestaat, maar blijkbaar heb ik me vergist, dus moet er een exception worden gegooid. Ik vraag me af welke exception ik dan moet gooien. Ik dacht dus om een InvalidArgumentException te gooien, omdat ik blijkbaar een argument he opgegeven van een ID/key die niet bestaat. Maar ik zou graag weten of dit een juiste keuze is.
 
Dos Moonen

Dos Moonen

10/03/2014 23:13:20
Quote Anchor link
"This represents errors that cannot be detected at compile time."

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
<?php

function get($index, array $array) {

  if ($index < 0) {
    throw new OutOfBoundsException('index cannot be lower then zero');
  }

  if ($index >= count($array)) {
    throw new OutOfBoundsException('index has to be lower then the number of elements');
  }


  return array_values($array)[$index];
}


get((int) $_GET['index'], [42]);
get((int) $_GET['index'], [1, 1, 2, 3, 5, 8, 13]);

?>
Gewijzigd op 10/03/2014 23:14:54 door Dos Moonen
 
Ozzie PHP

Ozzie PHP

10/03/2014 23:20:16
Quote Anchor link
Hoi Dos,

Ik lees wat er staat, maar mijn technische kennis is nog niet zover dat ik het helemaal begrijp.

Wat wordt er bedoeld met "errors that cannot be detected at compile time"?

En als ik nu een niet bestaande key ingeef? Bijv. ik moet de key "Dos" hebben, maar ik typ in plaats daarvan per ongeluk "Dox". $dos = $config->get('Dox'). Die key bestaat niet. Welke exception moet er dan worden gegooid?
 
Dos Moonen

Dos Moonen

11/03/2014 07:10:47
Quote Anchor link
OutOfBoundsException is prima aangezien de compiler niet weet of 'Dox' op het moment dat die regel uitgevoerd wordt een valide key is. 'key' is wel toegestaan om als key te gebruiken, dus het is geen invalide argument wat de methode betreft.
 
Ozzie PHP

Ozzie PHP

11/03/2014 14:12:55
Quote Anchor link
Oké, ik snap wat je bedoelt Dos. Ik vind OutOfBoundsException alleen helemaal geen prettige naam (voor mezelf). Ik vind 'm te onduidelijk en te lastig om te onthouden.

Misschien kan ik er beter UnknownIdException van maken. Wat vind je daarvan?

Overigens vraag ik me iets af... dat geldt eigenlijk voor alle exceptions. Leg je de "schuld" neer bij de programmeur, of leg je de "schuld" neer bij de server?

Klinkt misschien een beetje vaag, dus ik zal uitleggen wat ik bedoel.

Stel je roept een bestand aan en dat bestand bestaat niet, zeg je dan in je exception message:

A: ("schuld" bij programmeur) je hebt een niet bestaand bestand "foo.php" aangeroepen

OF

B: ("schuld" bij server) kan het bestand "foo.php" niet vinden
 
D Vivendi

D Vivendi

11/03/2014 14:38:12
Quote Anchor link
Wat maakt het nou uit hoe je het zegt. Of je nu de schuld bij de programmeur of de server legt. Het gaat er om dat de boodschap duidelijk is.

Zelfde met excepties. OutOfBoundsException zegt dat er iets buiten de "grenzen" is gekomen. Dat duidt dus eerder op iets als een array. Je hebt keys van 1 tm/ 10 maar key 23 wordt opgevraagd. Dan stap je dus butien die "bounds" of "boundary" en gooi je die exceptie.

Als je voor dit verhaal niet goed weet welke je moet gebruiken van de bestaande, maak je zelf een Exception class aan die "ConfigurationPropertyNotFoundException" oid. Zolang het maar een indicatie geeft van wat er fout gaat is het goed. Zou hier ook echt niet te lang bij stil staan.
 
Ozzie PHP

Ozzie PHP

11/03/2014 14:44:07
Quote Anchor link
Okeej... ik sta er ook niet te lang bij stil. Maar je hebt soms van die dingen waar je pas achteraf achter komt dat je het beter op een andere/handigere manier had kunnen aanpakken. Vandaar dat ik graag wat extra visies ontvang.

Je kunt inderdaad zoiets gebruiken als ConfigurationPropertyNotFoundException, maar je moet er ook voor waken dat je dan weer niet 10 verschillende variaties daarop krijgt... ProductPropertyNotFoundException, UserPropertyNotFoundException enz. Daarom wil ik een zo algemene, maar toch zo specifiek als mogelijke, naam gebruiken voor overeenkomstige situaties.
 
Ward van der Put
Moderator

Ward van der Put

11/03/2014 15:07:19
Quote Anchor link
D Vivendi op 11/03/2014 14:38:12:
Wat maakt het nou uit hoe je het zegt. Of je nu de schuld bij de programmeur of de server legt. Het gaat er om dat de boodschap duidelijk is.

Het maakt niet veel maar wel iets uit. De LogicException en subklassen zoals de InvalidArgumentException tikken de developer bij tests op de vingers en mogen in productie niet meer voorkomen:

“Exception that represents error in the program logic. This kind of exceptions should directly lead to a fix in your code.”
 
D Vivendi

D Vivendi

11/03/2014 16:09:13
Quote Anchor link
Ward van der Put op 11/03/2014 15:07:19:
Het maakt niet veel maar wel iets uit. De LogicException en subklassen zoals de InvalidArgumentException tikken de developer bij tests op de vingers en mogen in productie niet meer voorkomen:

“Exception that represents error in the program logic. This kind of exceptions should directly lead to a fix in your code.”


Dan heb je het over de exception zelf. Ik had het alleen over het bericht zelf wat je bij de exceptie toont. Of je nu "foo.php bestaat niet" of "foo.php niet gevonden" zegt, dat maakt dan in weze niet echt veel verschil. Komt op het zelfde neer.
 
Reshad F

Reshad F

11/03/2014 18:12:17
Quote Anchor link
Je hebt compile time errors en runtime errors.

-compile time krijg je als je een rood streepje onder je code ziet wanneer je aan het coderen bent.
-run time krijg je wanneer je de applicatie runt en een fout naar je hoofd gegooid krijgt.

Overigens is het leuk en aardig dat je OutOfBoundsException geen leuke benaming vind maar let wel op.. dit is een algemene exception die bij veel programmeurs bekend is. wanneer jij allemaal custom errors terug gooit dan is het voor jou opvolger heel moeilijk om te achterhalen wat die fout is of waarom die error.

Als ik een OutOfBoundsException krijg dan weet ik dat het te maken heeft met het feit dat ik een array key aanroep die niet bestaat.
stel ik krijg UnknownIdException dan denk ik bij mezelf ohh nee weer een creatieve developer die zijn eigen errors namaakt.

In principe kan je de aangeleverde foutmeldingen gebruiken met een eigen stukje tekst voor de duidelijkheid zoals in Dos' voorbeeldje.
 
Ozzie PHP

Ozzie PHP

11/03/2014 18:21:56
Quote Anchor link
Thanks Reshad.

>> compile time krijg je als je een rood streepje onder je code ziet wanneer je aan het coderen bent.

Bedoel je daarmee bijv. dat ik een ; vergeet? Dat soort fouten kun je toch niet opvangen?

>> run time krijg je wanneer je de applicatie runt en een fout naar je hoofd gegooid krijgt.

Maar dan lijkt het me dat alle exceptions run time exceptions zijn. Of zeg ik nu iets geks?
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

11/03/2014 18:43:03
Quote Anchor link
Alle script talen zijn intrepeters, en die runnen alleen wanneer je een script uitvoert.
Anders gezegd, je krijgt een compiler fout op het moment dat je een fout hebt in je code (bv haakje vergeten etc, etc.)
Runtime errors krijg je wanneer je bv een object vanuit je db probeert te halen maar dat dan de db niets terug geeft.
 
Ozzie PHP

Ozzie PHP

11/03/2014 19:14:28
Quote Anchor link
Kun je een compiler fout dan vergelijken met een spelfout?
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

11/03/2014 19:44:32
Quote Anchor link
Ik weet niet precies wat je daarmee bedoelt.
Compiler errors ontstaan doordat je je ergens een ;, { etc. vergeet.

Maar tenzij je bootstrap en autoloaders geen fouten bevatten heb je in principe wel een runtime error.
 
Wouter J

Wouter J

11/03/2014 19:49:14
Quote Anchor link
Alle exceptions zijn runtime, alleen binnen runtime heb je ook weer verschil: Errors kunnen afhangen van de code alleen (LogicException) of kunnen worden beïnvloed door dingen buiten de code, bijv. een bestand dat verwijderd is, verkeerde user input, etc. (RuntimeException).
 
Ozzie PHP

Ozzie PHP

11/03/2014 19:51:33
Quote Anchor link
Ik bedoel dus dat een compile error een soort van "spelfout" is. We zijn ergens een komma of een punt vergeten tijdens het typen. Terwijl een runtime error een fout is die tijdens de uitvoer van een request plaatsvindt. Correct?
 
Wouter J

Wouter J

11/03/2014 20:06:54
Quote Anchor link
Een compile error is een syntax error.

Toevoeging op 11/03/2014 20:07:40:

Maar ook, als je een beetje goede compiler hebt, een niet bestaande method aanroepen of een niet bestaande variabele gebruiken.
 
Ozzie PHP

Ozzie PHP

11/03/2014 20:14:49
Quote Anchor link
>> Een compile error is een syntax error.

Dat is wat ik bedoelde met "spelfout" :-)

>> of een niet bestaande variabele gebruiken

Is dat ook een compile error? Dus eigenlijk is wat je zelf verkeerd intypt een compile error?
 



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.