Dosya içeriğinde eval
yapıyorum. Dosya ayrıştırdığım etiketlerden yapılmış. Her satırın bir etiketi vardır ve her etiket için proc
tanımlanmış, böylece eval
başarılı olur. Ancak, bazen kullanıcılar yeni etiketler ekledikten sonra bilinmeyen komut nedeniyle eval
komutu başarısız olur.Tcl'nin bilinmeyen komutta kilitlenmesini engelle
eval
bilinmeyen bir komut çalışırken Tcl'nin çökmesini engellemenin bir yolu var mı?
İdeal olarak, bir hataya işaret etmek ve eval
ile devam etmek gibi kendi tanımlanmış davranışımla değiştirmeme izin vermeliyiz.
DÜZENLEME:
Maalesef, sadece Tcl 8.4 kullanabilirsiniz. Sonra
proc handle_unknown_label {cmd args} { ... }
ve:
Ben aşağıdakileri, as suggested here yapıyor çalıştı
rename unknown _old_system_unknown
rename handle_unknown_label unknown
catch {set ret [eval $x]} err
rename unknown handle_unknown_label
rename _old_system_unknown unknown
ama hala eval
için aynı davranışı elde ve aşağıdaki hataları yazdırır:
yordam bilinmiyor, korumalı bir proc olduğunu ve yeniden adlandırılmaması gereken
yordamı bilinmiyor bir pro tected proc ve
prosedür bilinmeyen overriden almazsınız korumalı proc ve
prosedür bilinmeyen bir korumalı proc değiştirildi almazsınız gibi sürer,
uygulanamaz, ancak bir dosya okuyor ve değerlendiriyorsanız, bunun yerine dosyaya da kaynak olabilirsiniz, değil mi? Bu Tcl yorumlayıcısı hangi ortamda –
? Bu "korumalı proc" hatası ile aşina değilim. –
@glenn İlginç. Yani bu benim şirketimde devre dışı bırakılmış bir şey olabilir mi? –