«« ( Date ) »» // «« ( Thread ) »» // ir4pp1 - 2008

Re: jos jedno pitanje i jedan veeeeeliki problem...

by Sasa Vitorovic
ponedeljak, 21. januar 2008 - 23:30.

Sad sam video da sam i ja radio na isti lenji nacin kao i ti. Samo, nije fora hvatati nullexception, vec ispraviti ovako kako si rekao, i sve ce biti kako treba


----- Original Message ----- From: "Vladimir Mitrovic" <kalamunya@gmail.com>
To: <ir4pp1@rti.etf.bg.ac.yu>
Sent: Monday, January 21, 2008 9:33 PM
Subject: Re: [ir4pp1] jos jedno pitanje i jedan veeeeeliki problem...



Sasa Vitorovic wrote:

P.S.
a imam istovremeno i problem sa Tab.insert(int kind,
String name, Struct type) jer sta se desava kada je
topScope.locals null? onda baca exception!!!! ja jesam dodao: if (scopeSyms == null) scopeSyms = new
HashTable();
ali ne znam da li to sme!!!

Sme, i treba.


Kolko ja smatram, mislim da je to development error. Ao vec hoces to da pokrijes nemoj otvarati novi opseg(to se radi na drugim mestima u kodu) vec baci neki Exception. Ja na ovo nisam niako reagovao.

Jeste development error, i to u kodu koji smo dobili kao implementaciju tabele simbola. Naime, metoda openScope() u originalu izgleda ovako:

public static void openScope() {
Scope s = new Scope();
s.outer = topScope;
topScope = s;
level++;
}

Greska lezi u tome sto se nigde ne pravi novi HashTable objekat. Dakle, ili treba napraviti konstruktor za klasu Scope (jer ne postoji) i tu dodati inicijalizaciju, ili direktno u openScope() dodati s.locals = new HashTable(); Ja sam u nastupu lenjosti izabrao ovo drugo. :)

Nije mi jasno kako si uspeo da ignorises te NullException-e, kada se svaki put kada otvoris novi scope pojavi i null pointer? Jesi ti uopste otvarao novi scope kada udjes npr. u definiciju metode?

Pozdrav,
Vladimir



-----------------------------------------------------------------
unsubscribe:
minimalist@rti.etf.bg.ac.yu?subject=unsubscribe%20ir4pp1
-----------------------------------------------------------------