Defensiivinen ohjelmointi
Oppikaa defensiivistä ohjelmointia: validoikaa syötteet, välttäkää null-arvoja ja epäonnistukaa aikaisin selkeillä poikkeuksilla.
Defensiivinen ohjelmointi on ilmainen Java Academy-oppitunti CoddyKitissä. Tämä on oppitunti 3/3. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu Java Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Java Academy-kurssilla on yhteensä 3 oppituntia.
Johdanto
Defensiivinen ohjelmointi tarkoittaa sellaisen koodin kirjoittamista, joka ennakoi virheitä, kuten virheellisiä syötteitä, null-arvoja ja vääriä tiloja. Se auttaa havaitsemaan ongelmat ajoissa.
Syötteiden validointi
Tarkistakaa argumentit metodien alussa. Jos syöte on virheellinen, heittäkää poikkeus heti sen sijaan, että jatkaisitte virheellisillä tiedoilla.
Koodi: syötteen validointi
Tämä metodi tarkistaa nimittäjän ja heittää poikkeuksen nollalla jakamisen sijaan.
public class Main {
static int divide(int a, int b) {
if (b == 0) {
throw new IllegalArgumentException("Denominator must not be zero");
}
return a / b;
}
public static void main(String[] args) {
try {
System.out.println(divide(10, 0));
} catch (IllegalArgumentException e) {
System.out.println("Caught: " + e.getMessage());
}
}
}
Välttäkää null-arvoja
Välttäkää null-arvojen välittämistä tai palauttamista. Käyttäkää sen sijaan tyhjiä kokoelmia, oletusarvoja tai Optionalia NullPointerException-tapausten vähentämiseksi.
Koodi: null-tarkistus
Tässä null-arvo tarkistetaan ja heitetään poikkeus sen sijaan, että NullPointerException tapahtuisi myöhemmin.
public class Main {
static String upper(String s) {
if (s == null) {
throw new IllegalArgumentException("String must not be null");
}
return s.toUpperCase();
}
public static void main(String[] args) {
try {
System.out.println(upper(null));
} catch (IllegalArgumentException e) {
System.out.println("Caught: " + e.getMessage());
}
}
}
Koodi: fail fast
Fail fast: havaitkaa ongelmat heti selkeiden virheilmoitusten avulla. Näin vältetään myöhemmin ilmenevät vaikeasti ymmärrettävät virheet.
public class Main {
static int[] makeArray(int size) {
if (size < 0) {
throw new IllegalArgumentException("Size must be non-negative");
}
return new int[size];
}
public static void main(String[] args) {
try {
makeArray(-5);
} catch (IllegalArgumentException e) {
System.out.println("Caught: " + e.getMessage());
}
}
}
Defensiivisen ohjelmoinnin tarkistus
Pikakysymys: mikä on defensiivisen ohjelmoinnin keskeinen tavoite?
Kertaus
Kertaus: Defensiivinen ohjelmointi validoi syötteet, välttää null-arvoja ja havaitsee virheet heti. Se tekee ohjelmista turvallisempia ja helpompia selvittää.
Opi Java tekoälytuutorin avulla — ilmaiseksi
Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.
- Kurssit
- 104
- Oppitunnit
- 374
Usein kysytyt kysymykset
Onko oppitunti ”Defensiivinen ohjelmointi” ilmainen?
Kyllä – oppitunnin ”Defensiivinen ohjelmointi” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko Java Academy-kurssin, päivitä CoddyKit PROhon. Java Academy-kurssilla on yhteensä 3 oppituntia.
Mitä opin oppitunnilla ”Defensiivinen ohjelmointi”?
Oppikaa defensiivistä ohjelmointia: validoikaa syötteet, välttäkää null-arvoja ja epäonnistukaa aikaisin selkeillä poikkeuksilla. Harjoittelet Java Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.
Tarvitsenko kokemusta aloittaakseni Java Academy-opiskelun?
Aiempi kokemus ei ole tarpeen. CoddyKitin Java Academy-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 3/3.
Kuinka kauan ”Defensiivinen ohjelmointi”-oppitunnin suorittaminen kestää?
Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.
Voinko kirjoittaa ja suorittaa koodia tällä Java Academy-oppitunnilla?
Kyllä. Jokainen Java Academy-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.
Kaikki tämän kurssin oppitunnit
- Poikkeusten heittäminen ja omat poikkeukset
- try-with-resources (AutoCloseable)
- Defensiivinen ohjelmointi