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
1927
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
SDP haluaa LISÄÄ veroja bensa-autoille!
Sdp:n vaihtoehtobudjetti esittää polttomoottoriautoille lisää veroja Sdp esittää tuoreessa vaihtoehtobudjetissaan verot21517802Riikka se jytkytti BKT:stä nyt 0,3 prosenttia pois
Ja vain kolmessa kuukaudessa! Vuositasollahan tuo tarkoittaa reilun prosentin pudotusta. Pärjäisi varmaan lasketteluss5510168Vasemmistoaate on aatteista jaloin
Kaikki saavat ja kukaan ei jää ilman. Kuka tuollaista voisi vastustaa?2496491Persut: haluamme lisää veroja!
Lisää lisää veroja huutaa persukuoro. Veroila Suomi nousuun! "Uusi matkailuvero eli matkailijamaksu peritään esimerki74394Antti Lindtman kiitti valtiovarainministeri Purraa
Ministeri Purra kertoi ottavasa vastuun EU:n alijäämämenettelyyn joutumisesta. Hän myös sanoi tietävänsä, että Lindtman543309Brittiläinen vasemmistolehti: Sanna Marin oli vihdoin rehellinen
Nyt tulee pahasti lunta tupaan Seiskan tähtitytölle. Ex-pääministerin kirjaa arvostellaan latteuksista ja itsekehusta.633050Suomalaisten enemmistö on (ateisteja / fiksuja / sosialisteja)
Tai jokin noiden yhdistelmä, koska S-ryhmän markkinaosuus päivittäistavarakaupasta on yli 50 prosenttia.272987"Purra löylytti oppositiota", sanoi naistoimittaja Pöllöraadissa
Kyllä, Purra tekee juuri sitä työtä mitä hänen tuossa asemassa pitää tehdä, hän antaa oppositiolle takaisin samalla mita712787Henkilökohtaisia paljastuksia Dubaista - Kohujulkkis Sofia Belorf on äitipuoli ja puoliso!
Tiesitkö, että Sofia on äitipuoli ja rakastava puoliso? Sofia Belorf saa oman sarjan, jossa seurataan hänen Bling Bling972785Alexander C. G. riisti demari-Veijolta arvonimen
"Stubb myönsi 66 arvonimeä ja peruutti yhden arvonimen. Presidentti Tarja Halonen myönsi Baltzarille kulttuurineuvoksen812302