apresentação de ruby com blocos de programação, módulos e outros exemplos

Post on 28-May-2015

2.151 Views

Category:

Technology

1 Downloads

Preview:

Click to see full reader

DESCRIPTION

Uma apresentação de ruby mostrando um pouco de bloco de programação, manipulação de exceptions, modulos e outros.

TRANSCRIPT

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

top related