¡Caminando hacia el éxito!

Aprende en Comunidad

Avalados por :

Como resolver a exceção do Java ao converter uma string em um inteiro

  • Creado 01/03/2024
  • Modificado 01/03/2024
  • 4 Vistas
0
Cargando...

Olá Especialistas -

Estou tentando aumentar o valor de uma variável local em 1, mas ao ler o valor do cabeçalho, ele é atribuído a uma string "valor", depois tento convertê-lo para um inteiro com a declaração:

counter_var = Integer.parseInt(valor)

mas estou recebendo uma exceção do Java:

java.lang.Exception: java.lang.NumberFormatException: Para a string de entrada

Por favor, me ajudem a resolver esse problema.

Obrigado,

Anirban

import com.sap.gateway.ip.core.customdev.util.Message
import java.util.HashMap
def Message processData(Message message) {
       //Cabeçalhos 
       def map = message.getHeaders()
       def valor = map.get("INCREMENT")
       if(valor == null)
       { 
           def counter_var = 0       
       }
       else 
       {
           counter_var = Integer.parseInt(valor)
       }
       
       message.setHeader("INCREMENT", counter_var + 1)
       return message;
}
Pedro Pascal
Se unió el 07/03/2018
Pinterest
Telegram
Linkedin
Whatsapp

3 Respuestas

0
Cargando...

Olá amallick ,

  1. Como sunny.kapoor2 mencionou, a declaração da variável counter_var deve estar fora. E
  2. A condição 'if' também deve verificar a condição de string vazia. - if(value == null || value == "")
  3. Também é melhor usar uma condição adicional value.isNumber() == true e lidar com o caso antes de converter a string em inteiro. A condição aninhada abaixo é apenas um exemplo. Você pode fazer alterações e otimizar o código conforme necessário.
import com.sap.gateway.ip.core.customdev.util.Message;
import java.util.HashMap;

def Message processData(Message message) {
       def map = message.getHeaders()
       def value = map.get("INCREMENT");
       def counter_var;
       if(value == null || value == "")
       { 
         counter_var = 0       
       }
       else 
       {
          if(value.isNumber() == false)
		{
		  //fazer o contador ser zero / gerar uma exceção personalizada / tomar qualquer outra ação
		}
	    else
		counter_var = Integer.parseInt(value)
       }
       
       message.setHeader("INCREMENT", counter_var + 1)
       return message;
}

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Obrigado, sunny.kapoor2 e @ganesh m por suas amáveis respostas.

Este é o script que finalmente funcionou para mim:

import com.sap.gateway.ip.core.customdev.util.Message;
import java.util.HashMap;

def Message processData(Message message) {
       def map = message.getHeaders()
       String value = map.get("INCREMENT");
       def counter_var;
       if(value == null || value == "")
       { 
         counter_var = 0       
       }
       else 
       {
		  counter_var = Integer.parseInt(value)
       }
       
       message.setHeader("INCREMENT", counter_var + 1)
       return message;
}
Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Olá amallick ,

O script parece estar correto, apenas mova a declaração da variável counter_var para fora.

Se ainda estiver vendo o erro, verifique o valor do cabeçalho INCREMENT no modo de rastreamento, talvez não esteja no número adequado no formato de string.

import com.sap.gateway.ip.core.customdev.util.Message;
import java.util.HashMap;

def Message processData(Message message) {
       def map = message.getHeaders()
       def value = map.get("INCREMENT");
       def counter_var;
       if(value == null)
       { 
         counter_var = 0       
       }
       else 
       {
           counter_var = Integer.parseInt(value)
       }
       
       message.setHeader("INCREMENT", counter_var + 1)
       return message;
}

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019

contacto@primeinstitute.com

(+51) 1641 9379
(+57) 1489 6964

© 2024 Copyright. Todos los derechos reservados.

Desarrollado por Prime Institute

¡Hola! Soy Diana, asesora académica de Prime Institute, indícame en que curso estas interesado, saludos!
Hola ¿Puedo ayudarte?