2017-03-12 18 views
0

私はXamarinクロスプラットフォームのモバイル開発のために、この例を理解されています:例外からのカスタム例外メッセージがXamarinソリューションに表示されないのはなぜですか?

https://msdn.microsoft.com/en-us/library/dn879698.aspx

私はコード内の2回APIキーコピーすることで、エラーをした。具体的に

using System; 
using System.Threading.Tasks; 

namespace XWeatherApp 
{ 
    public class Core 
    { 
     public static async Task<Weather> GetWeather(string zipCode) 
     { 
      //Sign up for a free API key at http://openweathermap.org/appid 
      string key = "40aabb59f41e9e88db7be4bab11f49f8"; 
      string queryString = "http://api.openweathermap.org/data/2.5/weather?zip=" 
       + zipCode + ",us&appid=" + key + "&units=imperial"; 

      //Make sure developers running this sample replaced the API key 
      if (key == "40aabb59f41e9e88db7be4bab11f49f8") 
      { 
       throw new ArgumentException("You must obtain an API key from openweathermap.org/appid and save it in the 'key' variable."); 
      } 

      dynamic results = await DataService.getDataFromService(queryString).ConfigureAwait(true); 

      if (results["weather"] != null) 
      { 
       Weather weather = new Weather(); 
       weather.Title = (string)results["name"]; 
       weather.Temperature = (string)results["main"]["temp"] + " F"; 
       weather.Wind = (string)results["wind"]["speed"] + " mph"; 
       weather.Humidity = (string)results["main"]["humidity"] + " %"; 
       weather.Visibility = (string)results["weather"][0]["main"]; 

       DateTime time = new System.DateTime(1970, 1, 1, 0, 0, 0, 0); 
       DateTime sunrise = time.AddSeconds((double)results["sys"]["sunrise"]); 
       DateTime sunset = time.AddSeconds((double)results["sys"]["sunset"]); 
       weather.Sunrise = sunrise.ToString() + " UTC"; 
       weather.Sunset = sunset.ToString() + " UTC"; 
       return weather; 
      } 
      else 
      { 
       return null; 
      } 
     } 
    } 
} 

を、 2つのコメントの後の行に

私は実際のAndroid携帯にこのアプリをデプロイしました。明らかに私は例外を持っています(これは失敗したコードを探していて分かりませんでした)。

出力ウィンドウ(Visual Studio 2017)でその例外が表示されませんでした。私は唯一の画面上でこのメッセージを得た:

Unhandled exception

なぜ(すなわち、あなたは例外のカスタムメッセージopenweathermap.org/appidからAPIキーを取得し、それを保存する必要がありません」をキー '変数)。

+0

よう

何かは、例外メッセージは、デバッグ出力ウィンドウに表示されます。 –

答えて

0

try/catchを使用しようとしましたか?あなたは/キャッチを試みるとキャッチ部分に例外を印刷するかしない限り、

try{ 
    await GetWeather(string zipCode); 
} 
catch(Exception ex) { 
    // here you should have your exception 
} 
関連する問題