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
1768
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
Olisiko sinulla mitään toiveita?
Miten sinä toivoisit minun sinua lähestyvän? Mitään mitä olisi tosi hyvä tietää ennen sitä? Jos ei sen kummempia, niin1032840Turun tunnin juna toteutetaan
Köyhiltä viedään mutta tunnin juna Turkuun viedään läpi. Puhaltakaa PS nyt tämä poikki! https://www.hs.fi/politiikka/ar2511993Oletko kertonut tästä
Meidän oudosta jutusta kenellekään? Olen kertonut ystävälleni, että olet saanut minut sekaisin…, mutta tästä hän ei tied1201942Miksi miehet kohtelevat mua huonosti
Oon nyt tapaillut kolmea ihmistä. Ensimmäisen kanssa nähtiin kolme kertaa, ja meidän oli tarkoitus mennä leffaan tiettyn1361668- 931420
Poliisi etsii Leif Lindemannia
https://www.mtvuutiset.fi/artikkeli/poliisi-etsii-leif-lindemania-julkaisi-kuvan/8982310#gs.cec6zf Onko nähty jo tarhar251014Hitsi että olet tyylikäs!
Sinulla on upea näkemys ja oikeaa värisilmää. Hyvä etten melkein pudonnut polvilleni eteesi kun hämmästytit minut jällee37974- 96968
Ensi kerralla aion ottaa sinun kanssa
Tuijotus kisan ja mitäs sitten tapahtuu jää nähtäväksi 🤩😃 Voi olla vähän hankalaa jos muita ihmisiä mutta odotelkoot s46828- 43804