[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

better error reporting from eval?

matt

2/24/2009 4:23:00 PM

This might seem silly, but it is only a reduced version of a real issue.
Consider the following:

class Thing
def ev(what)
eval(what)
end
def bar()
1 + 1
nil + 2 # causing an exception in bar()
end
def foo
bar()
end
end

Thing.new.ev("foo()")

NoMethodError: undefined method `+' for nil:NilClass
method ev
in untitled at line 4
method foo
in untitled at line 11
method ev
in untitled document at line 1
method eval
in untitled at line 15
method ev
in untitled at line 4
at top level
in untitled at line 15

Notice that the error report makes no mention of bar(). This can make
exceptions in an eval difficult to track down. Is there a way to get
better error reporting in an eval? Thx - m.

--
matt neuburg, phd = matt@tidbits.com, http://www.tidbits...
Leopard - http://www.takecontrolbooks.com/leopard-custom...
AppleScript - http://www.amazon.com/gp/product/...
Read TidBITS! It's free and smart. http://www.t...
7 Answers

Tim Pease

2/24/2009 4:40:00 PM

0


On Feb 24, 2009, at 9:24 AM, matt neuburg wrote:

> This might seem silly, but it is only a reduced version of a real
> issue.
> Consider the following:
>
> class Thing
> def ev(what)
> eval(what)
> end
> def bar()
> 1 + 1
> nil + 2 # causing an exception in bar()
> end
> def foo
> bar()
> end
> end
>
> Thing.new.ev("foo()")
>

def ev(what)
eval(what, binding, __FILE__, __LINE__)
end

You can pass along the filename and the line number that you want
displayed when eval reports errors. The "binding" is simply the
binding of your current Thing instance.

Blessings,
TwP

matt

2/24/2009 7:04:00 PM

0

Tim Pease <tim.pease@gmail.com> wrote:

> On Feb 24, 2009, at 9:24 AM, matt neuburg wrote:
>
> > This might seem silly, but it is only a reduced version of a real
> > issue.
> > Consider the following:
> >
> > class Thing
> > def ev(what)
> > eval(what)
> > end
> > def bar()
> > 1 + 1
> > nil + 2 # causing an exception in bar()
> > end
> > def foo
> > bar()
> > end
> > end
> >
> > Thing.new.ev("foo()")
> >
>
> def ev(what)
> eval(what, binding, __FILE__, __LINE__)
> end
>
> You can pass along the filename and the line number that you want
> displayed when eval reports errors. The "binding" is simply the
> binding of your current Thing instance.

Amazing - just adding the word "binding" (in the actual issue I'm
having) in the eval call does indeed solve the whole problem. Thx! m.

--
matt neuburg, phd = matt@tidbits.com, http://www.tidbits...
Leopard - http://www.takecontrolbooks.com/leopard-custom...
AppleScript - http://www.amazon.com/gp/product/...
Read TidBITS! It's free and smart. http://www.t...

choro

3/1/2012 6:08:00 PM

0

On 01/03/2012 16:44, Karpat wrote:
> "Acephale Lemar"<privat@org.invalid> wrote in message news:jincgq$1h9s$3@geiz-ist-geil.priv.at...
>> Karpat wrote:
>>> Fil ler gulmez mi?
>>>
>>> Vay vay sct filleri kipirdami$. Yeni dolar isaretini Porsuk u
>>> ateslemek icin yazmadim .
>>> Sansli adam su Porsuk, biraz daha istese olacak ama kazmasinin gucu
>>> yok filleri konusturmaya
>>
>> Gecmisi kenara koyup, ?n?m?ze bakmak daha yararli, yapici bir y?ntem
>> degil mi? Nicin kasimaya devam ediyorsun?
>
> Ne kasiniyorum ne de kasimaya hevesliyim. Bir elimde kasagi ?b?r elimde kam?i,
> o ibne ?mer Gogen in buraya yolladigi sataraban bilmecesini ??zmeye ?alisiyorum.
> Hangisini kullanacagim hen?z belli degil
>
> Senin, yazdiklarimi iyi anlayamamis olmani mazur g?r?yorum.
> Benim yazdiklarimi tam anlamak zordur. Birinci sarti, en az Rifat in ki kadar y?ksek bir zeka seviyesine

Evet, Rifat gayet zeki fakat sen...?
Len sen tahta kafalisin, len.
TAHTAA!
-- choro
> ihtiya? vardir. Ikincisi de dikkatli bir SCT takip?isi olmak gerekir. Sen her iki sart i?inde kendi
> kendine engel koyuyorsun.
>
> >> Hakikaten iki fil $ooooyle bir hortumlarini oynatmislar. Carpmadan
>>> kacalim.
>>
>> Kacma, dur.
>>
>>> AK fil ile KARA fil bunlar. Tepe tepe sct yapmi$lar zamaninda .
>>>
>>> Birinin demirini kazma yaptik oburunun golgesinde dinlendik.
>>
>> Nank?r degilsin, haklinin hakkini veriyorsun.
>>
>>> Ayaklarimiz fil bokuna batinca ayakkabilari cikardik ciplak ayakla
>>> yuruduk.
>>> Malum ayak yikamak ayakkabi yikamaktan daha kolaydir.
>>>
>>> Hele kon? lari varsa . Bilirmisiniz ne demektir kon? ? Hele sari
>>> sari kon?lu olanlari
>>> Bakalim nesil farki mi kultur farkimi.
>>
>> Anlat da ?greneyim, ne imis bu "konc" meselesi!
>>
>>> Bak simdi aklima geldi KARA fil " kultur " un bizim dilde ki
>>> karsiligini sorsa ne cevap verirdiniz.
>>> Ben merak ettim. Arastirdim ?zgen, ?zgil diyenler var. Hars diyen
>>> de var ,
>>> Sevmedim kufur gibi geldi ;) G?rece diyebilirmiyim ?
>>
>> Ha, simdi caktim, kara fil= MK, ari T?rkce'ye deginmissin, alman dil
>> fasistlerinin T?rkiye'ye bulastirdigi sapikliktan.
>> Aslinda k?lt?r?n karsiligi var T?rkce'de: anane; yani rivayet edilen,
>> nesilden nesile aktarilan ve kimlik belirleyici bilgi ve tecr?be iceren
>> fikirler demetidir.
>> Uyari: K?lt?r ile k?lt karistirilmamali, dis benzerlige ragmen farkli
>> k?kenli terimlerdir bunlar.
>
> dikkate alinacak.
>
>>
>>> Yazdik iste bizimkide boyle dostlar alis veriste gorsun ;)
>>
>> "bizimki de" g?rd? 'dostun' biri. ;-) O actigim ilmekte yazini
>> g?remedim.
>>
>>> 'Gercekten haberi olanlar' kara mizah yapabilir tabii.
>>
>> Biktim ya bu kara, ak mizah dirdirindan, ben de yesil mizah diye bir
>> tantana icat ettim.
>>
>>> Munis Karpat ise m?nevver beglerin irfani ile aydinliga erismeye
>>> ?abalar durur....
>>
>> He ya, sen de kendini g?r?n?rde d?s?rerek karsindakini k?c?lt?yorsun,
>> d?s?r?yorsun, asagiliyorsun.
>
> Iste sct de yazmanin zorluklarindan birini cok iyi ?rnekledin.
>
>> Sen bana, AK fil kim, onu s?yle.
>
> ?mitlenme sen degilsin. Zor olani c?zm?ss?n, onu da ??zersin.
>
>

Acephale Lemar

3/1/2012 6:58:00 PM

0

Karpat wrote:
> "Acephale Lemar" <privat@org.invalid> wrote in message

>> Gecmisi kenara koyup, ?n?m?ze bakmak daha yararli, yapici bir y?ntem
>> degil mi? Nicin kasimaya devam ediyorsun?
>
> Ne kasiniyorum ne de kasimaya hevesliyim. Bir elimde kasagi ?b?r
> elimde kam?i, o ibne ?mer Gogen in buraya yolladigi sataraban
> bilmecesini ??zmeye
> ?alisiyorum. Hangisini kullanacagim hen?z belli degil

Dilini kullanman yeterli, ne kasagiya ne de kamciya gerek var.

> Senin, yazdiklarimi iyi anlayamamis olmani mazur g?r?yorum.
> Benim yazdiklarimi tam anlamak zordur. Birinci sarti, en az Rifat in
> ki kadar y?ksek bir zeka seviyesine ihtiya? vardir. Ikincisi de
> dikkatli bir SCT takip?isi olmak gerekir. Sen her iki sart i?inde
> kendi kendine engel koyuyorsun.

He ya, ben keleklerden en kelek olaniyim...bazan set cekmek sagliga
faydalidir.

>>> Hele kon? lari varsa . Bilirmisiniz ne demektir kon? ? Hele sari
>>> sari kon?lu olanlari
>>> Bakalim nesil farki mi kultur farkimi.
>>
>> Anlat da ?greneyim, ne imis bu "konc" meselesi!

Neden anlatmadin?

>>> Yazdik iste bizimkide boyle dostlar alis veriste gorsun ;)
>>
>> "bizimki de" g?rd? 'dostun' biri. ;-) O actigim ilmekte yazini
>> g?remedim.

Hala g?remiyorum.

>>> Munis Karpat ise m?nevver beglerin irfani ile aydinliga erismeye
>>> ?abalar durur....
>>
>> He ya, sen de kendini g?r?n?rde d?s?rerek karsindakini k?c?lt?yorsun,
>> d?s?r?yorsun, asagiliyorsun.
>
> Iste sct de yazmanin zorluklarindan birini cok iyi ?rnekledin.

Yazmanin mi yoksa okunmanin mi?

>> Sen bana, AK fil kim, onu s?yle.
>
> ?mitlenme sen degilsin. Zor olani c?zm?ss?n, onu da ??zersin.

Bulmaca c?zmek icin burada degilim. ?mitlenmedim, bilgine sunarim.

Acephale Lemar

3/1/2012 7:00:00 PM

0

choro wrote:
> On 01/03/2012 16:44, Karpat wrote:

>> Senin, yazdiklarimi iyi anlayamamis olmani mazur g?r?yorum.
>> Benim yazdiklarimi tam anlamak zordur. Birinci sarti, en az Rifat in
>> ki kadar y?ksek bir zeka seviyesine
>
> Evet, Rifat gayet zeki fakat sen...?
> Len sen tahta kafalisin, len.
> TAHTAA!

Simdi sen nicin kabalastin?
Sana laf atmadi, aksine bana atti. Karisacaksan, bulandirmak amaciyla
karisma, durulandirmak icin karis ki mekan senlensin.

Karpath

3/1/2012 10:44:00 PM

0


"choro" <choro@tvco.net> wrote in message news:7WO3r.96425$R87.93435@newsfe19.ams2...

> Len sen tahta kafalisin, len.
> TAHTAA!
> -- choro
En azindan senin gibi AHLAKSIZ degilim.


choro

3/1/2012 11:08:00 PM

0

On 01/03/2012 22:43, Karpat wrote:
> "choro"<choro@tvco.net> wrote in message news:7WO3r.96425$R87.93435@newsfe19.ams2...
>
>> Len sen tahta kafalisin, len.
>> TAHTAA!
>> -- choro
> En azindan senin gibi AHLAKSIZ degilim.

Domuzun kuyrugu duzelirse sen de duzelirsin, insan olursun.
-- choro