Erro de Compilação em resultados previsíveis pelo compilador Java
Closed this issue · 4 comments
Quando o usuário escreve um laço enquanto com uma condição cujo resultado é previsível pelo compilador o programa gera um erro de compilação.
Ex.:
enquanto (verdadeiro)
{
...
}
escreva("Olá mundo")
Este código gera erro, pois o compilador Java detecta que a condição sempre será verdadeira e consequentemente o laço é infinito. Logo, todo código após o enquanto nunca será executado e isso gera um UnreachebleCodeError no compilador.
Outro exemplo:
enquanto (2 < 3)
{
}
e isso não está certo?
Está certo do ponto de vista lógico.
Porém, o Portugol Studio só apresenta uma mensagem genérica: "Erro ao compilar".
Temos duas opções, ou damos um bypass nessa verificação e ignoramos o erro ou exibimos uma mensagem melhor para o usuário, do tipo:
"Linha: X, Coluna: Y. O laço 'enquanto' vai executar infinitamente, pois sua condição é sempre verdadeira. Todos os comandos a partir da linha Z nunca serão executados."
Esta Issue é um pouco mais séria, Todos os eventos que o compilador Java consegue prever e o Portugol Studio não irão gerar um Erro de Compilação.
Exemplos:
programa{
funcao inicio()
{
inteiro x = 5
escolha(x){
caso 1:
pare
retorne
}
}
}
programa{
funcao inicio()
{
enquanto (verdadeiro){
}
escreva("oi")
}
}
programa{
funcao inicio()
{
retorne
retorne
}
}
This issue was moved to UNIVALI-LITE/Portugol-Studio#312