Poreamme/Javalabra — pull request #1 by hunppa (2013-04-14 21:55:56+00:00)
Title: Koodikatselmointi 1

Liittyen kommittiin ee15675a16ef88320caf48480a789960e88ec787.

Viestien käsittely
---

**Ongelma:**

Tiedostossa *IrcBot.java* käsitellään viestejä varomattomasti erillaisilla String-luokan metodeilla sekä indeksoidaan listoja ilman virheentarkistusta tai poikkeuskäsittelyä.

Esimerkiksi palvelimelta tullut viesti:
```
:irc.elisa.fi 333 hmp #tkt-fuksit2012 snorri!peltoel@melkki.cs.helsinki.fi 1363031405
```
aiheuttaa poikkeuksen *ArrayIndexOutOfBounds* rivillä **71**.

Myös rivin **45** readLine() voi palauttaa nullin, josta seuraa NPE.

**Parannusehdotuksia:**

- Palvelimen lähettämien viestien parsimisen eriyttäminen bottilogiikasta omaan luokkaansa voi olla avuksi, sillä se mahdollistaa parsintaongelmien siistin kapseloinnin ja puhdistaa bottilogiikan ikävästä merkkijonokäsittelystä.

- Tyypillisten tapausten – kuten merkkijonon osioinnin ja indeksoinnin – kapseloiminen omaksi metodiksi tekee parsintakoodista turvallisemman ja luettavamman. Tämä pull requestin koodi on esimerkki tästä lähestymistavasta.

**Muuta:**

Pätsittyäni kohtaamani poikkeukset pois, sain botin ottamaan yhteyttä IRCnettiin ja liittymään fuksikanavalle. Siistiä! Ihan parhausprojekti.