- Home /
C# try catch block doesn't work for iOS?
Trying to build an app to iOS, & to my surprise it seems code in a standard C# try-catch block hangs the build. Does try-catch work in an iOS build? I hope I can post code here properly (first time), but the offending code is:
 try {
             xmlDoc.LoadXml(xmlDocString);
             try {
                 steering = float.Parse(xmlDoc.DocumentElement.Attributes["steering"].Value);
             } catch {
                 steering = 0f;
             }
 } catch {
 }
It hangs on the inner try catch block. I nested the try-catch blocks to isolate the problem. xmlDoc is an XmlDocument object that loads an XML string sent via a SendMessage (so the string is cast from type object). I understand an exception may occur because the XML string may not contain the attribute. But isn't try-catch supposed to handle this kind of exception handling? Does Android build have the same issue?
Any info welcome & appreciated. Thanks.
Just curious, did you ever get this to work? I'm on iOS too, getting the same error with
 try
 {
       System.Convert.FromBase64CharArray(charArray, 0, charArray.Length);
 }
 catch //Also tried catch (System.FormatException) since that's the error it's throwing but no luck
 {
 }
Unfortunately I can't test on iOS, and I know the clue of the problem is try catch, but as a side note, you can convert the inner one to:
 float steering = 0f;
 var attrSteering = xmlDoc.DocumentElement.Attributes["steering"];
     
 if(attrSteering == null || !Single.TryParse(attrSteering.Value, out steering))
 {
     steering = 0f;
 }
I've also had this problem on iOS, and removing the try catch block fixed the error (and I did have Slow and Safe selected).
Answer by JuhaRMD · Jan 21, 2014 at 01:26 PM
Do you have exception handling enabled? If you want to catch exceptions on iOS you should make sure that the exception handling has been enabled (from Project Settings -> Player Settings -> iOS -> Other Settings set "Script Call Optimization" to "Slow and Safe").
Answer by Slobdell · Aug 10, 2013 at 04:44 PM
It should work. But you can't really figure out the problem if you don't know what it is. Change your catch methods to this
 catch(Exception e){
      Debug.log(e.toString());
 }
That will help you isolate the problem, it's probably something really simple but you won't know unto you see what the errors are
Your answer
 
 
              koobas.hobune.stream
koobas.hobune.stream 
                       
                
                       
			     
			 
                