Post on 28-May-2015
description
Wende Mendes HiginoWende Mendes Higino
email: wende.mendes@bluesoft.com.bremail: wende.mendes@bluesoft.com.br
RubyRuby
* Bloco de programação* Bloco de programação
* Manipulando exceptions* Manipulando exceptions
* Módulos* Módulos
* Throw e catch* Throw e catch
RubyRuby
* Bloco de programação* Bloco de programação
RubyRuby
** Imagine o exemplo a seguir que soma o Imagine o exemplo a seguir que soma o saldo das contas de um banco:saldo das contas de um banco:
RubyRuby
RubyRuby
Esse processo é executado em diversos Esse processo é executado em diversos pontos da nossa aplicação e todos eles pontos da nossa aplicação e todos eles precisam exatamente desseprecisam exatamente dessecomportamento.comportamento.
Em um dia ensolarado, um ponto de nossa Em um dia ensolarado, um ponto de nossa aplicação passa a necessitar da impressão aplicação passa a necessitar da impressão dos saldos parciais,dos saldos parciais,
RubyRuby
RubyRuby
Resolveria meu problemaResolveria meu problema
RubyRuby
RubyRuby
RubyRuby
Resolveria meu problemaResolveria meu problema
RubyRuby
RubyRuby
RubyRuby
RubyRuby
RubyRuby
RubyRuby
RubyRuby
RubyRuby
RubyRuby
* Manipulando exceptions* Manipulando exceptions
RubyRuby
A lista abaixo mostra as exceptions mais A lista abaixo mostra as exceptions mais comuns em ruby e quando são lançadas, comuns em ruby e quando são lançadas, todas são filhas detodas são filhas deExceptionException
* * RuntimeErrorRuntimeError : É a exception padrão : É a exception padrão lançada pelo método lançada pelo método raiseraise..
* * NoMethodErrorNoMethodError : Quando um objeto recebe : Quando um objeto recebe como paramêtro de uma mensagem um como paramêtro de uma mensagem um nome de método que não pode ser nome de método que não pode ser encontrado.encontrado.
* * NameErrorNameError : O interpretador não : O interpretador não encontra uma variável ou método com o encontra uma variável ou método com o nome passado.nome passado.
RubyRuby
* * IOErrorIOError : Causada ao ler um stream que foi : Causada ao ler um stream que foi fechado, tentar escrever em algo fechado, tentar escrever em algo read-read-only only e situações similares.e situações similares.
* * TypeErrorTypeError : Um método recebe como : Um método recebe como argumento algo que não pode tratar.argumento algo que não pode tratar.
* * ArgumentErrorArgumentError : Causada por número : Causada por número incorreto de argumentos.incorreto de argumentos.
RubyRuby
o bloco o bloco begin...endbegin...end é é combinado com combinado com rescuerescue, , que será invocado caso alguma coisa deque será invocado caso alguma coisa deerrado aconteça.errado aconteça.
RubyRuby
RubyRuby
* Digitando um valor correto* Digitando um valor correto
RubyRuby
* Digitando um valor incorreto* Digitando um valor incorreto
RubyRuby
Exceptions podem ser lançadas com o Exceptions podem ser lançadas com o comando comando raiseraise..
RubyRuby
RubyRuby
RubyRuby
É possível utilizar sua própria exception É possível utilizar sua própria exception criando uma classe e extendendo de criando uma classe e extendendo de ExceptionException..
RubyRuby
RubyRuby
RubyRuby
RubyRuby
Tratando vários errosTratando vários erros..
RubyRuby
RubyRuby
RubyRuby
RubyRuby
* Módulos* Módulos..
- Módulos são maneiras de “grudar” vários- Módulos são maneiras de “grudar” vários métodos no caso de não querer definir uma métodos no caso de não querer definir uma classe.classe.
- pode usar para criar namespaces- pode usar para criar namespaces
RubyRuby
RubyRuby
RubyRuby
RubyRuby
RubyRuby
RubyRuby
criando namespacescriando namespaces
RubyRuby
RubyRuby
Módulos diferem de classes por que são Módulos diferem de classes por que são coleções de métodos e constantes, não coleções de métodos e constantes, não podendo criar instâncias, e podem ser podendo criar instâncias, e podem ser “mixados” em classes e outros “mixados” em classes e outros módulos.módulos.
RubyRuby
RubyRuby
RubyRuby
* Throw e catch* Throw e catch
RubyRuby
RubyRuby