Como obter o texto de um rastreamento de pilha de exceção em Java ME?




Em Java regular, você pode obter o texto de um rastreamento de pilha, passando um PrintWriter para printStackTrace. Eu tenho um sentimento que eu sei a resposta a isso (ou seja, Não), mas,


Existe alguma maneira de obter o texto de um rastreamento de pilha em JavaME como uma String?


**Atualizar:**


Devo mencionar que eu estou restrito a CLDC 1.0
AFAIK não há nenhuma maneira de obter o rastreamento de pilha como um valor da cadeia, a menos que uma plataforma específica fornece um meio para substituir o fluxo System.err padrão. Na plataforma BlackBerry, ele joga fora a pilha de rastreamento on `catch(Exception)`, a fim de economizar memória, no entanto, não fazer isso em `catch(Throwable)`e dá acesso ao rastreamento de pilha para o log do evento do dispositivo.


O que eu acabei fazendo é pegar Throwable em vez de Exceção no último momento possível e imprimir o rastreamento de pilha de lá. Isto, obviamente, tem o perigo de que você também está pegando `java.lang.Error`o que não é muito bom, especialmente se a sua `OutOfMemoryError`, embora uma chamada para `System.gc()`antes de imprimir o rastreamento de pilha parece reduzir o risco e não tivemos qualquer problema com ele.


Eu olhava para qualquer plataforma que você está alvejando e ver se eles dão acesso a System.err em algum lugar. Você sempre pode ligar um depurador e ele deve aparecer na saída do console, embora parece que você está depois de obter rastreamentos de pilha 'no campo'.
Extrair texto de PDFs é difícil e quase sempre requer muito
cuidado.


Eu começaria com as ferramentas de linha de comando, como
pdftotext e ver o que eles cuspiram. O problema é que os PDFs podem
armazenar o texto em qualquer ordem, podem usar codificações de
fontes estranhas e podem fazer coisas como usar caracteres de
ligadura (o conjunto 'ff' e 'ij' que você vê na formatação
adequada) para lançar você.


O pdftotext é instalável em qualquer sistema Linux ... olá paulo,  

  

eu preciso ver o problema para saber realmente o que está acontecendo para poder prover uma solução.  

será que poderia enviar um print do problema? oi, [@mirelacoimbra](/usuarios/60872/mirelacoimbra/)


tudo bem?


o app é simples de usar quando você aprende. acho que posso te ajudar! dá uma olhada nesse tutorial aqui: <https://www.techtudo.com.br/dicas-e-tutoriais/2019/07/como-tirar-print-estendido-da-tela-inteira-no-celular-android.ghtml>


depois me conta se deu certo? <p>oi andré tudo bem?</p>
<p>verifique se o arquivo não foi salvo como .txt ao invés de .java</p>
<p>enquanto o professor não chega na parte da ide eclipse você pode também usar esse site <a href="https://www.jdoodle.com/online-java-compiler" rel="nofollow">https://www.jdoodle.com/online-java-compiler</a> para testar os códigos java.</p> <p>usando <a href="http://ruby-doc.org/core-1.9.3/string.html#method-i-scan"><code>scan</code></a> deve fazer o truque:</p><pre><code>string.scan(/regex/) </code></pre> <p>encontrei uma solução para o seu problema.</p><p>baseado em <a href="https://stackoverflow.com/a/8798355/637284">this so answer</a> eu fiz um programa que usa classes de caracteres regex para procurar por letras que possam ter modificadores opcionais. ele divide sua string em caracteres simples (combinados, se necessário) e os coloca em uma lista:</p><pre><code>import java.util.*; import java.lang.*; import java.util.regex.*; class main { public static void main (string[] args) { string s="குமார்"; list&lt;string&gt; characters=new arraylist&lt;string&gt;(); pattern pat = pattern.compile("\\p{l}\\p{m}*"); matcher matcher = pat.matcher(s); while (matcher.find()) { characters.add(matcher.group()); } // test if we have the right characters and length system.out.println(characters); system.out.println("string length: " + characters.size()); } } </code></pre><p>onde <code>\\p{l}</code> significa uma letra unicode e <code>\\p{m}</code> significa uma marca unicode.</p><p>a saída do trecho é:</p><pre><code>கு மா ர் string length: 3 </code></pre><p>veja <a href="https://ideone.com/apkapn">https://ideone.com/apkapn</a> para uma demonstração funcional</p><hr><p><strong>edit</strong></p><p>eu agora chequei meu regex com todas as cartas tamil válidas tiradas das tabelas em <a href="http://en.wikipedia.org/wiki/tamil\_script">http://en.wikipedia.org/wiki/tamil\_script</a> . descobri que com o regex atual não capturamos todas as letras corretamente (cada letra na última linha da tabela composta de grantha é dividida em duas letras), então refinei meu regex para a seguinte solução:</p><pre><code>pattern pat = pattern.compile("\u0b95\u0bcd\u0bb7\\p{m}?|\\p{l}\\p{m}?"); </code></pre><p>com este padrão em vez do acima, você deve ser capaz de dividir sua sentença em cada letra tamil válida (desde que a tabela da wikipédia esteja completa).</p><p>o código que usei para verificar é o seguinte:</p><pre><code>string s = "ஃஅஆஇஈஉஊஎஏஐஒஓஔக்ககாகிகீகுகூகெகேகைகொகோகௌங்ஙஙாஙிஙீஙுஙூஙெஙேஙைஙொஙோஙௌச்சசாசிசீசுசூசெசேசைசொசோசௌஞ்ஞஞாஞிஞீஞுஞூஞெஞேஞைஞொஞோஞௌட்டடாடிடீடுடூடெடேடைடொடோடௌண்ணணாணிணீணுணூணெணேணைணொணோணௌத்ததாதிதீதுதூதெதேதைதொதோதௌந்நநாநிநீநுநூநெநேநைநொநோநௌப்பபாபிபீபுபூபெபேபைபொபோபௌம்மமாமிமீமுமூமெமேமைமொமோமௌய்யயாயியீயுயூயெயேயையொயோயௌர்ரராரிரீருரூரெரேரைரொரோரௌல்லலாலிலீலுலூலெலேலைலொலோலௌவ்வவாவிவீவுவூவெவேவைவொவோவௌழ்ழழாழிழீழுழூழெழேழைழொழோழௌள்ளளாளிளீளுளூளெளேளைளொளோளௌற்றறாறிறீறுறூறெறேறைறொறோறௌன்னனானினீனுனூனெனேனைனொனோனௌஶ்ஶஶாஶிஶீஶுஶூஶெஶேஶைஶொஶோஶௌஜ்ஜஜாஜிஜீஜுஜூஜெஜேஜைஜொஜோஜௌஷ்ஷஷாஷிஷீஷுஷூஷெஷேஷைஷொஷோஷௌஸ்ஸஸாஸிஸீஸுஸூஸெஸேஸைஸொஸோஸௌஹ்ஹஹாஹிஹீஹுஹூஹெஹேஹைஹொஹோஹௌக்ஷ்க்ஷக்ஷாக்ஷிக்ஷீக்ஷுக்ஷூக்ஷெக்ஷேக்ஷைஷொக்ஷோஷௌ"; list&lt;string&gt; characters = new arraylist&lt;string&gt;(); pattern pat = pattern.compile("\u0b95\u0bcd\u0bb7\\p{m}?|\\p{l}\\p{m}?"); matcher matcher = pat.matcher(s); while (matcher.find()) { characters.add(matcher.group()); } system.out.println(characters); system.out.println(characters.size() == 325); </code></pre> <p>se bem entendi, você deseja enviar dados para um programa em execução dentro de uma sessão de tela. você pode fazer isso com o comando <code>stuff</code> da tela. use a tela <code>-x</code> opção para executar um comando em uma sessão de tela sem anexar a ela.</p><pre><code>screen -s sessionname -p windowname -x stuff 'command1 command2 ' </code></pre><p>se você quiser ver a saída do programa, consulte os comandos <code>hardcopy</code>, <code>log</code> e <code>logfile</code>.</p> olá gabriela, é só seguirmos o codigo genético. (https://www.blogdovestibular.com/wp-content/uploads/2019/11/questao-codigo-genetico-ufrgs-2012.png) assim uma possível seguência de rna mensageiro seria: aug gcu gau aug cau uuu cgu aau ucu ggu em conseguência teriamos a fita dupla de dna 3' tac cga cta tac gta aaa gca tta aga cca 5' 5' atg gct gat atg cat ttt cgt aat tct ggt 3'   espero que tenha ajudado e estou a disposição! a resposta é sim, basta procurar o mapa de caracteres do seu ambiente de trabalho por exemplo este é o gnome-characters do ambiente gnome.

[[captura%20de%20tela%20de%202019-06-09%2010-20-45]](https://plus.diolinux.com.br/uploads/default/original/2x/b/b27849dc91427662dd899308f491067d95c775c5.png "captura de tela de 2019-06-09 10-20-45.png")

[captura%20de%20tela%20de%202019-06-09%2010-20-16] <p>consegui encontrar o erro. isto é, consegui encontrar onde estava o erro.
o erro estava no arquivo index.html, no ponto onde indico o arquivo javascript principal:</p>
<pre class="prettyprint"><code> &lt;script&gt;
 system.defaultjsextesions &#61; true;
 system.import(&#39;js/app.js&#39;).catch(err &#61;&gt; console.error(err));
 &lt;/script&gt;</code></pre><p>embora o código visível estava identico ao atual, acredito que havia algum caracter especial não imprimível que ocasionava o erro.
ao ponto que refiz o código o erro parou de ocorrer.</p>