Thread overview
November 27, 2012

bir classı throw yapıp daha sonra throw yaptığım classın içindeki değerlere erişmek istiyorum.
exception oluyor ama sadece bir string gönderebiliyorum birkaç tane değer göndermem lazım.

hata mesajı, hata satırı, hata numarası gibi kendi belirlediğim şeyleri de göndermek istiyorum.
https://fbcdn-sphotos-e-a.akamaihd.net/hphotos-ak-snc7/944_116303838532905_503117021_n.png
şu an burada aslında sadece full description yazan yeri throw la alıyorum isteğim diğer bilgileri de throw atabilmek.

Teşekkür ederim.

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

November 28, 2012

Merhaba Zekeriya,

Bize script'ini tanıtsan çok mu şey istemiş oluruz? Örneğin şu Rhodeus ney...:)

Hepsinden önemlisi ne zamandır çalıyorsun?

Başarılar...

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

November 28, 2012

Cevabı beklemeden biraz FB sayfasına bakayım dedim ve şunu çok beğendim:

Class c{
 Function this(sayı){
   self.y = sayı
 }
 Function kareAl(){
   self.y = self.y * self.y
 }
 Function sonuç(){
   return self.y
 }
 Function üsAl(sayı){
   self.y = self.y ^ sayı
 }
}
a = c(2)          // y = 2
a.kareAl()        // y = 4
a.üsAl(3)         // y = y*y*y
a.y = a.y / 4     // 64/4 = 16
print(a.sonuç())

Gerçi birleşik mantık sorgusu (x<sayı<y) olayını da çok beğendim ama ortak nokta pratiklik. Bu sanırım Scala'da var ve biraz Go'da... Diller de bu yenilikçi akımı sürdürmeye çalışsa ne iyi olur...:)

Soru: self.y this içinde tanımlanırken başka işlev içinde çağrılabilmesi genel kural mı?

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

November 28, 2012

Öncelikle Ali hocam ve Salih hocam size çok teşekkür ederim. Yardımlarınız olmasa şu an projede bu aşamaya gelemezdim. İnşallah sonunu getirebilirsem sizin isminizi de yazacağım :) ve dili açık kaynak kodlu olarak yayınlayacağım. Maksat gelişsin bir yerlere gelsin yerli malı bir şeyler ortaya çıksın :) tabi bu kadar uğraşmışım tübitaka katılarak bir şansımı da denemek istiyorum :D

Yazdığımız yazılımları bir başlık altında toplamak amacıyla rhodeusu seçtik örneğin rhodeus web server, rhodeus script, rhodeus physics gibi.

Şu anda rhodeus script ve rhodeus web server üzerinde uğraşıyorum.

rhodeus script php gibi bir web programlama dili. web serveri de onu apache vs kullanmadan yayın yapmak için kullanıyorum.

Projeye başlayalı tam 1 ay oldu. Bir yandan sizin sayenizde d öğreniyorum bir yandan da okulla uğraşıyorum bu yüzden çok fazla vakit ayıramıyorum ama tek başıma 0 bilgiyle birşeyler yapmaya başladım. Başlarken 0 bilgi olsa dahi şu anda baya birşey öğrendiğime inanıyorum.

Alıntı:

>

Soru: self.y this içinde tanımlanırken başka işlev içinde çağrılabilmesi genel kural mı?

self burada classı belirtiyor aslında. Python da şöyle bir olay var

class a:
 def b(self):
   self.x = 1
x = a()
a.b()

pythonda normalde bu şekilde kullanılıyor self e classın adresini atıyor. b içerisinde self tanımlamazsanız. hata veriyor ama self yerine başka birşey yazsanız da oluyor pythondan gelen bir alışkanlığım bende classa erişmeyi self yaptım. this olayı ise tamamen d dilinden aslında selfi kaldırıp this de yapabiliriz.

self o class içerisindeki bütün değerler tarafından ulaşılabilir ama this içerisinde direkt olarak a = 1 şeklinde tanımlama yaparsanız diğerleri tarafından erişilebilir olmaz.
Ama şöyle bir olay var

Class c{
 a = 1
 c = f1()["a"]
}

şeklinde this fonksiyonu tanımlamak zorunda değilsiniz ve bu değerleri direkt olarak class içerisinde tanımlayabilirsiniz.

Biraz çorba ettim tam anlatamadım sanırım ama kusura bakmayın :D

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

November 27, 2012

Hata sıradüzeninde en üstte Throwable var ama onun yakalanması önerilmiyor. Bunun bir nedeni, devam edilemeyecek hataları ifade eden Error'ın da ondan türemiş olması. Dolayısıyla, eğer Throwable'ı yakalasak aslında yakalanmaması gereken Error'ı da yakalamış oluyoruz.

Doğrusu, Exception'ı yakalamaktır. Sıradüzen şöyle:

'
Throwable
/
Exception Error
/ |
yakalanan
hatalar ...
'

O yüzden, hata türlerimizi Exception'dan türetmeliyiz:

class ÖzelHatam : Exception
{
   int i;
   double d;
   string s;

   this(int i, double d, string s)
   {
       super("Özel hata falan filan");
       this.i = i;
       this.d = d;
       this.s = s;
   }
}

void foo(int i)
{
   if (i < 42) {
       throw new ÖzelHatam(i, 1.5, "merhaba");
   }
}

import std.stdio;

void main()
{
   try {
       foo(7);

   } catch (ÖzelHatam hata) {
       writeln("Bir hata olmuş. İçindeki bir bilgi şu: ", hata.d);
   }
}

Tabii ÖzelHatam türünü yakalamak yerine Exception türünü de yakalayabilirdik:

} catch (Exception hata) {

O zaman yalnızca "Özel hata falan filan" bilgisini edinebilirdik.

Ali

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]