Preguntas frecuentes

De Uqbar wiki

Problemas con el entorno

Estoy tratando de pasar algunas clases del tp de objetos y no puedo crear clases.

#* Fijate que el nombre de la clase este en mayúsculas.

Interpretación de errores

Evalué mi código, me tiró un error y no sé lo que significa

#* Don’t panic

#* Leé el título de la ventana de error

#* Si con eso no alcanza para entender, lee la cadena de mensajes que se fueron enviando (stacktrace). Cada línea del stacktrace dice:

#**la clase del objeto receptor, si el receptor era una clase dice además class, por ejemplo Golondrina class

#**entre paréntesis la clase en donde está definido el método que se ejecutó

#**el mensaje enviado a ese objeto

#*Si todavía no sabés qué fue, apretá Debug que te aporta mucha más información para entender qué pasó

Mensajes más comunes:

MessageNotUnderstood

Problema: Se mandó un mensaje que el receptor no entiende.

Posibles soluciones:

Un caso particular con el que se pueden encontrar es que un objeto de una clase de ustedes no entienda el mensaje #adaptToNumber:andSend:, lo cual puede surgir si como parámetro de una operación matemática no era un número (por ejemplo 3 + pepita).


NonBooleanReceiver: proceed for truth

Problema: Se le mandó a un objeto que no es booleano un mensaje de booleanos como ifTrue:ifFalse:

Solución: Mirar el stacktrace, en algún momento va a aparecer: ClaseDelObjetoReceptor(Object)>>mustBeBoolean más abajo en el stacktrace debería aparecer un mensaje que definieron ustedes o DoIt si se envió desde el workspace. Darle doble click a ese mensaje para abrir el debugger y ver qué pasó.


***Error: This block accepts arguments, but was called with arguments***

Problema: se evaluó un bloque con una cantidad de argumentos distinta de la esperada.

Solución: Buscar en el stacktrace el método que definieron (o DoIt si fue directo desde el workspace) que evaluó el bloque con una cantidad incorrecta de parámetros.

Latest update on July 17, 2017 by GitHub