Stock Exchange App:RunTimeException AndroidDevelopment

时间:2015-03-23 05:34:56

标签: java android try-catch ioexception yahoo-api

我一直试图弄清楚当用户输入无效的股票代码时,我的应用程序会一直停止。我的应用程序应该捕获异常并向应用程序用户显示一个Toast消息,并将EditText字段返回到""。

这是logcat流:

*

> 03-23 01:02:54.592  12645-13046/com.example.newtonmd.stockexchange
> I/StockStock.load()﹕ name = / 03-23 01:02:54.592 
> 12645-13046/com.example.newtonmd.stockexchange W/dalvikvm﹕
> threadid=11: thread exiting with uncaught exception (group=0x4176dda0)
> 03-23 01:02:54.592  12645-13046/com.example.newtonmd.stockexchange
> E/AndroidRuntime﹕ FATAL EXCEPTION: AsyncTask #1
>     Process: com.example.newtonmd.stockexchange, PID: 12645
>     java.lang.RuntimeException: An error occured while executing doInBackground()
> 
> 
>    
> 
> >  **at com.example.newtonmd.stockexchange.Stock.load(Stock.java:83)
> >                 at com.example.newtonmd.stockexchange.MainActivity$DownloadStockTask.doInBackground(MainActivity.java:65)
> >                 at com.example.newtonmd.stockexchange.MainActivity$DownloadStockTask.doInBackground(MainActivity.java:52)**
> > 
> > *

*

这是我在mainactivity类的AsyncTask内部类中的代码。 stock.load行抛出一个异常以及类头。我似乎无法弄清楚原因。任何帮助是极大的赞赏。谢谢。

>   private class DownloadStockTask extends AsyncTask<String, Void,
> Stock>                                                 {              
> 
>        public boolean DBug = true;                                                                                    
>                                                                                                                       
>        protected Stock doInBackground(String... symbols)                                                              
>            {                                                                                                          
>                                                                                                                       
>            //download stock info from internet                                                                        
>                                                                                                                       
>                stock = new Stock(symbols[0]);                                                                         
>                                                                                                                       
>                try                                                                                                    
>                    {                                                                                                  
>                         stock.load();                                                                                 
>                    }                                                                                                  
>                catch( IOException e)                                                                                  
>                    {                                                                                                  
>                         e.printStackTrace();                                                                          
>                         DBug = false;                                                                                 
>                         Context context = getApplicationContext();                                                    
>                         CharSequence text =  "Error in retrieving stock symbol.";                                     
>                                                                                                                       
>                         Toast toast = Toast.makeText(context ,text , Toast.LENGTH_SHORT);                             
>                         toast.show();                                                                                 
>                         return stock = new Stock("");                                                                 
>                    }                                                                                                  
>                                                                                                                       
>                return stock;                                                                                          
>            }                                                                                                          
>                                                                                                                       
>        protected void onPostExecute(Stock stock)                                                                      
>            {                                                                                                          
>                if(!DBug) {                                                                                            
>                    Context context = getApplicationContext();                                                         
>                    CharSequence text =  "Error in retrieving stock symbol.";                                          
>                                                                                                                       
>                    Toast toast = Toast.makeText(context ,text , Toast.LENGTH_SHORT);                                  
>                    toast.show();                                                                                      
>                }                                                                                                      
>                else{                                                                                                  
>                                                                                                                       
>                    TextView sym = (TextView) findViewById(R.id.symbolResult);                                      
> 
>                    TextView name = (TextView) findViewById(R.id.nameResult);                                        
> 
>                    TextView price = (TextView) findViewById(R.id.priceResult);                                       
> 
>                    TextView time = (TextView) findViewById(R.id.timeResult);                                        
> 
>                    TextView change = (TextView) findViewById(R.id.changeResult);                                      
>                    TextView range = (TextView) findViewById(R.id.rangeResult);                                       
> 
>                                                                                                                       
>                    sym.setText(stock.getSymbol());                                                                    
>                    name.setText(stock.getName());                                                                     
>                    price.setText(stock.getLastTradePrice());                                                          
>                    time.setText(stock.getLastTradeTime());                                                            
>                    change.setText(stock.getChange());                                                                 
>                    range.setText(stock.getRange());                                                                   
>                }                                                                                                      
>            }                                                                                                          
>                                                                                                                       
>                                                                                                                       
>                                                                                                                       
>                                                                                                                       
>            }

0 个答案:

没有答案