Opettelin alkeet Pythonilla ja nyt haluaisin opetella Javaa. Pythonissa oli helppo palauttaa None jos jokin meni pieleen, vaikka
def jaa(x,y):
if y==0 return None
return x/y
Mutta miten sama tehdään Javalla? Eikös metodeilla ole aina paluutyyppi, jolloin
double jaa(double x,double y)
palauttaa aina reaaliluvun eikä koskaan null-arvoa? Onko siis kaikki virhetilanteet katsottava ennen kuin metodia kutsutaan?
Miten virheelliset inputit tarkistetaan?
7
1977
Vastaukset
- phytonlopunagetti
Muuttamalla ohjelman tietoisuuden tason sylintereitä. Okey ?
Pitää heittää virhe:
throw new OmaKeksimasiLuokkaException("nyt tuli huonoa inputtia!");- jaavaguru
joo, java on syvältä, 8 vähän vähemmän syvältä, jossa voit palauttaa Optional<Double>
Optional<Double> jaa (double x, double y){
if(y == 0D){
return Optional.empty();}
return Optional.of(x/y);
}- dbltrbl
Millä todennäköisyydellä double on tasan nolla?
- jaavaguru
dbltrbl kirjoitti:
Millä todennäköisyydellä double on tasan nolla?
Niin joo, doublen jakotulos nollalla palauttaa NaN:n eikä heitä poikkeusta kuten int:llä jaettessa
dbltrbl kirjoitti:
Millä todennäköisyydellä double on tasan nolla?
Eihän likuluku voi koskaan olla nolla?
Tuon voi hoitaa ilman poikkeuksiakin. Ajattelisin, että muita poikkeustilanteita ei voi tulla, paitsi jos jakaja on 0 tai pienempi, tai sitten jaetaan kokonaislukuja. Jos jakometodi palauttaa Object-tyypin, voi hyvin palauttaa Stringin, että "Nollalla ei voi jakaa", ja sitten kierrättää kokonaisluvut ylikuormitetun metodin avulla alkuperäiseen jakometodiin siten, että ylikuormitetussa divide(int,int)-metodissa tehdään pakotettutyyppiimuunnos doubleksi ensin.
Pistin esimerkkikoodini jakoon Githubiin, tarkastele sitä ja unohda poikkeuksien käyttö tässä tilanteessa.
https://github.com/jjsume/Java-stuff/blob/master/Koknaisluku.java
Ajattelin vielä laajentaa tuota esimerkkiä siten, että jos luvut syöttää Stringeinä, niin homma toimii samalla tavalla. Tästä voisin kirjoitta vaikka tietokoneblogiini, joka sijaitsee osoitteessa www.tietokoneblogi.net ihan artikkelinkin näin sunnuntai-päivän ajankuluksi.
Ketjusta on poistettu 0 sääntöjenvastaista viestiä.
Luetuimmat keskustelut
Eläkeläiset siirrettävä muuttotappioalueille
Joutoväki pois ruuhkauttamasta elättäjien arkea. Samalla putoaa jokaisen asumiskulut ja rahaa jää enemmän kuluttamiseen.4523373SDP pelastaa uppoavan Suomen
2027 kun SDP voittaa ylivoimaisesti vaalit alkaa Suomen uusi raju syöksy kohti täystyöllisyyttä ja turvallisempaa yhteis1142597Kauppalehti - Törkeä skandaali paljastui: Espanja käytti EU-rahoja ihan muuhun kuin piti
Espanja on käyttänyt miljardeja euroja EU:n elpymisavustuksia eläkkeisiin ja sosiaalimenoihin – ja pyytää lisää. Espanj842132Jopa Espanjassa talous kasvaa, Purra vain irvistelee
Huomaa kuinka Purra on Suomen historian huonoin miniseteri, joka ei ole saanut aikaiseksi kuin tuhoa, Siis jopa vasemmis1621940- 1461765
- 931580
Jääkiekon MM:t pitää siirtää MTV:ltä Ylelle
Persuille ikäviä uutisia taas. . Valtioneuvoston asetuksen mukaan MM-kisat kuuluvat kansallisesti merkittäviin tapahtumi381471Raiskaukset loppumaan?
Onko kenelläkään tiedossaan tuloksellisia keinoja saada väkisinmakaaminen loppumaan tai edes vähenemään? Lainsäädännön3491308Tsemii Pete ja Linda! Tässä tärkeät kellonajat Euroviisut-viikon ohjelmista tv:ssä!
Euroviisut järjestetään Wienissä Itävallassa 12.-16. toukokuuta. Tsemii Pete ja Linda kisaan! Vetäkää Suomelle voitto Li321275Orpo ja Purra, käykää hakemassa oppia Espanjasta
Espanja on näyttänyt kuinka kova työttömyys nujerretaan ja saadaan maan talous palautettua nousu-uralle. Ei ole häpeä kä41093