Usando a função UserException


Força um erro, na linguagem AdvPL, para que possa ser tratado posteriormente. Para isso, esta função recebe uma string com a descrição do erro que será apresentada de acordo com o ambiente que está executando.

UserException ( < cDescricao> ) --> Nil

Nome Tipo Descrição Obrigatório Referência
cDescricao Caracter Indica a string que contém a descrição do erro forçado através da função. X
Nil (Nulo)
Caso a função seja executada em tela, a descrição será apresentada em uma janela de erro. Mas, se for executada via console (modo texto), será apresentada uma descrição na tela.
Exemplificando na prática:
//Cria uma view No Banco de Dados                             
User Function MakeView(cNomeView,cView)
 
	// Se For SqlServer

	//Dropa a View se Existir 
	If "MSSQL" $ Upper(Trim(TcGetDb()))
		// Verifica se existe a view
		BeginSql Alias "QVIEW"
			SELECT TABLE_NAME
			  FROM INFORMATION_SCHEMA.VIEWS
			 WHERE TABLE_NAME = %Exp:cNomeView%
		EndSql
		
		If QVIEW->(EOF())
			//Criar a View
			cMkView := "CREATE VIEW " + cNomeView 
			cMkView += " AS "
			cMkView += cView
			TCSQLEXEC(cMkView)
			If TcSqlExec(cMkView) <> 0
				UserException('ERRO AO CRIAR A VIEW ' + cNomeView + CRLF + TCSqlError() )
			Endif
		Endif
		QVIEW->(dbCloseArea())
	Endif

	// Se For Oracle
	If "ORACLE" $ Upper(Trim(TcGetDb()))
	   //Criar a View
	   cMkView := "CREATE OR REPLACE VIEW " + cNomeView 
	   cMkView += " AS "  
	   cMkView += cView                                                 
	   Memowrit(cNomeView+'.sql',cMkView)   
	   if TcSqlExec( cMkView ) <> 0
		  UserException('ERRO AO CRIAR A VIEW ' + cNomeView + CRLF + TCSqlError() )    
	   Endif  			
	Endif              
Return
ou
If Empty(cPadrao) .or. ValType(cPadrao) <> "C"
	UserException("Parametro Invalido - RetRecnoLP()")
	Return(0)
EndIf