<?xml version="1.0" encoding="UTF-8"?>
<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns3="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:id="lasterror" xml:lang="pt">
    <refnamediv>
        <refname>lasterror</refname>
        <refpurpose>retorna a última mensagem de erro registrada</refpurpose>
    </refnamediv>
    <refsynopsisdiv>
        <title>Seqüência de Chamamento</title>
        <synopsis>
            [str, n, line, func] = lasterror()
            [str, n, line, func] = lasterror(opt)
        </synopsis>
    </refsynopsisdiv>
    <refsection>
        <title>Parâmetros</title>
        <variablelist>
            <varlistentry>
                <term>str</term>
                <listitem>
                    <para>vetor de strings ou matriz vazia: a última mensagem de erro
                        registrada
                    </para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term>n</term>
                <listitem>
                    <para>inteiro, 0 ou o último número de erro registrado</para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term>line</term>
                <listitem>
                    <para>inteiro, 0 ou o último número de linha da função registrado
                    </para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term>func</term>
                <listitem>
                    <para>string, o último nome da função registrado </para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term>opt</term>
                <listitem>
                    <para>booleano, se %t for registrado, a mensagem é limpa. O padrão é %t
                    </para>
                </listitem>
            </varlistentry>
        </variablelist>
    </refsection>
    <refsection>
        <title>Descrição</title>
        <para>Cada vez que um erro ocorre, o manipulador de erros do Scilab o
            registra em tabelas ("tables") internas (apenas o último erro é retido). A
            função <literal>lasterror</literal> permite obter a mensagem de erro, o
            número de erro, a função corrente (se houver) e a linha corrente da função
            corrente destas tabelas.
        </para>
        <para>O número de linha reportado é o número da linha
            <emphasis>física</emphasis> onde o último erro ocorreu. Note que versões
            Scilab anteriores à 5.0 reportavam o número da linha
            <emphasis>lógica</emphasis> do último erro. A diferença realmente importa
            apenas se a função em erro inclui linhas continuadas antes do ponto onde o
            erro ocorreu.
        </para>
        <para>Esta função é útil quando usada em conjunto com
            <literal>errcatch</literal> ou <literal>execstr</literal>.
        </para>
        <para>A mensagem de erro pode ser retida para uma futura chamada a
            <literal>lasterror</literal> usando
            <literal>lasterror(%f)</literal>.
        </para>
    </refsection>
    <refsection>
        <title>Exemplos</title>
        <programlisting role="example"><![CDATA[
ierr = execstr('a=zzzzzzz','errcatch')
if ierr>0 then disp(lasterror()),end
 ]]></programlisting>
    </refsection>
    <refsection>
        <title>Ver Também</title>
        <simplelist type="inline">
            <member>
                <link linkend="execstr">execstr</link>
            </member>
            <member>
                <link linkend="error">error</link>
            </member>
            <member>
                <link linkend="errclear">errclear</link>
            </member>
            <member>
                <link linkend="edit_error">edit_error</link>
            </member>
        </simplelist>
    </refsection>
</refentry>
