Ir para conteúdo
Fórum Script Brasil
  • 0

Throw E Throws


Denis Bittencourt Muniz

Pergunta

Blezin galera?

Para que serve 'throw' e 'throws'? Gostria de uma explicação e exemplos, pois não entendi seu funcionamento...

Grato desde já! Falows!

P.S: Em VB.net as palavras-chaves são 'Throw' e 'Throws'???

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

Blezin galera?

Para que serve 'throw' e 'throws'? Gostria de uma explicação e exemplos, pois não entendi seu funcionamento...

Grato desde já! Falows!

P.S: Em VB.net as palavras-chaves são 'Throw' e 'Throws'???

A palavra-chave em VB.NET é somente Throw. Já throws é utilizado em Java para dizer que um determinado método pode levantar uma exceção.

O Throw, em VB.NET, é utilizado para você levantar uma exceção. Exceções (erros) são classes e você pode criar objetos a partir delas...

Dim erro As New Exception("teste")
... mas, como você pode ver aí, a linha acima só cria um objeto. Como dizer que esse objeto é um erro (uma exceção) que deve ser levantado? Através da palavra-chave Throw. Imagine uma função onde você queira que somente possa-se passar valores até 10 e para qualquer outro valor deve-se dar um erro. Você pode fazer algo assim:
    Function Função(ByVal i As Integer) As Integer
        If i > 10 Then
            Throw New Exception("Você deve informar um número entre 1 e 10")
        Else
            Return i * 2
        End If
    End Function
Experimente então chamar:
Dim i As Integer = Função(15)

Você vai ver que o erro será invocado com a mensagem passada. Você, é claro, também pode capturar esse erro com um bloco Try... Catch.

Certo? wink.gif

Graymalkin

Link para o comentário
Compartilhar em outros sites

  • 0

valeu Graymalkin! Pelo que entendi: Em Java devo especificar que tal método pode levantar exceção, usando 'throws', mas em VB.net é só usar a palavra-chave 'Throw' diretamente no método, certo?

Outra: e em C#?? Como uso essa técnica (digamos).

Aguardo respostas : )

Link para o comentário
Compartilhar em outros sites

  • 0

valeu Graymalkin! Pelo que entendi: Em Java devo especificar que tal método pode levantar exceção, usando 'throws', mas em VB.net é só usar a palavra-chave 'Throw' diretamente no método, certo?

Não existe uma equivalência direta entre Throw e throws. Em Java você é obrigado a tratar as exceções que um método pode levantar durante sua execução. Se você não tratá-los, o compilador se recusa a compilar o seu programa. Todavia, pode ser necessário que você não queira tratar o erro naquele momento (deixando isso para outro método que for utilizar o seu método). É nesse caso que você vai utilizar throws (essa palavra entra na declaração do método). Outra situação é você querer deixar o tratamento de uma determinada exceção como obrigatória (uma exceção que você criou, por exemplo). Ou seja, Throw do VB.NET e throw de Java são a mesma coisa, mas *throws* (que só existe em Java) é utilizado em outro contexto.

Outra: e em C#?? Como uso essa técnica (digamos).

Do mesmo jeito que em VB.NET e Java:

throw new Exception("mensagem de erro!");

Certo? wink.gif

Graymalkin

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      652k
×
×
  • Criar Novo...