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
1745
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
Heikki Silvennoinen petti vaimoaan vuosien ajan
Viiden lapsen isä Heikki kehuu kirjassaan kuinka paljon on pettänyt vaimoaan vuosien varrella.1462550- 241986
Miksi ihmeessä nainen seurustelit kanssani joskus
Olin ruma silloin ja nykyisin vielä rumempi En voi kuin miettiä että miksi Olitko vain rikki edellisestä suhteesta ja ha231968Persut nimittivät kummeli-hahmon valtiosihteeriksi!
Persujen riveistä löytyi taas uusi törkyturpa valtiosihteeriksi! Jutun perusteella järjenjuoksu on kuin sketsihahmolla.891776Onko ministeri Juuso epäkelpo ministerin tehtäviensä hoitamiseen?
Eikö hänellä ole kompetenttia hoitaa sosiaali- ja terveysministetin toimialalle kuuluvia ministerin tehtäviä?671530Sakarjan kirjan 6. luku
Jolla korva on, se kuulkoon. Sain profetian 22.4.2023. Sen sisältö oli seuraava: Suomeen tulee nälänhätä niin, että se201306Avaa sydämesi mulle
❤ ❤❤ Tahdon pelkkää hyvää sulle Sillä ilmeisesti puhumalla Avoimesti välillämme Kaikki taas selviää Kerro kaikki, tahdo371202Elia tulee vielä
Johannes Kastaja oli Elia, mutta Jeesus sanoi, että Elia tulee vielä. Malakian kirjan profetia Eliasta toteutuu kokonaan361188- 111188
Nellietä Emmaa ja Amandaa stressaa
Ukkii minnuu Emmaa ja Amandaa stressaa ihan sikana joten voidaanko me koko kolmikko hypätä ukin kainaloon ja syleilyyn k101167