Survey on Exception Handling in Android App Development
We are researchers in the Software Testing and Specification Lab at the Federal University of Rio Grande do Norte in Brazil and we are interested in understanding the best practices applied and difficulties faced when developing exception handling code for Android apps.

We would appreciate your feedback via this 10-minute survey until April 27, 2015. One of the respondents will receive an Amazon.com gift card of $50,00 (fifity dollars, random draw).

If you have questions about the survey, please send an email to: letsufrn@gmail.com
Sign in to Google to save your progress. Learn more
Q1: For how long have you been developing in Java?
Clear selection
Q2: For how long have you been developing in the Android Platform?
Clear selection
Q3: Is the development of Android apps part of your job?
Clear selection
Q4: What kind of Android projects do you work on?
Clear selection
Q4.1: If you have worked on at least one open source Android project, could you provide us with the repository address?
Q5: When was the last time you needed to deal with exceptions while developing an Android app? What did you have to do?
Tip: Talk about a specific situation you had to solve.
Q6: In your opinion, is exception handling important for the development of robust applications? Why?
Q7: Are you aware of any best practices for developing the exception handling code for Java and/or Android applications?
Clear selection
Q7.1: If yes, what best practices are you aware of?
Only answer this question in case of a positive answer in Q7.
Q8: How would you rate the difficulty of exception handling in Android apps compared to general Java applications?
By general Java applications, we mean non-Android applications, such as Java desktop applications or Java web applications.
Android exception handling is easier
Android exception handling is more difficult
Clear selection
Java code snippet related to Q9 and Q10
public class Example{

public static void main(String[] args) {
foo();
                //calls to other methods
                ...
}

public static void foo() {
bar();
}
}
Q9: Given the code snippet above of a simple Java class, what will happen if bar() throws a runtime exception?
Q10: If you could change the above code, what would you do with runtime exceptions thrown by bar()?
Android code snippet related to Q11, Q12 and Q13
@Override
public void onPause() {
    super.onPause();      
    commitData();
}

Q11: Given the code snippet above of the onPause() method of the Activity class in Android, what will happen if commitData() throws a runtime exception?
Q12: If you could change the above code, what would you do with runtime exceptions thrown by commitData()?
Q13: If the exception thrown by commitData() was a checked exception, would you do something different? If so, what?
Q14: In a situation where you catch an exception, but you cannot do anything to bring the Android application back to a stable state, what action(s) do you usually take?
Q15: Have you ever used the Thread.UncaughtExceptionHandler interface to customize the treatment of uncaught exceptions?
Clear selection
Q15.1: If yes, briefly describe a scenario where you used the UncaughtExceptionHandler or include a link (URL) to the corresponding code.
Only answer this question in case of a positive answer in Q15.
Android code snippet related to Q16 and Q17
The AsyncTask enables proper and easy use of the UI thread, it allows to perform background operations and publish results on the UI thread without having to manipulate threads and/or handlers [Android Developer Site].

Consider the code snippet below:

private class Example extends AsyncTask <Params, Progress, Result> {
  protected Result doInBackground(Params... params) {
         doSomeTask();
     }
...
}
Q16: If the doSomeTask() method throws a runtime exception, will the UI thread be notified?
Clear selection
Q17: What will happen in the application after the exception is thrown?
Q18:  How would you rate each element below according to their complexity in implementing exception handling?
Very low
Low
Medium
High
Very high
Don't know
Broadcast Receiver
Content Provider
Activity
Service
AsyncTask
Fragment
Handler
Clear selection
Q19: Thank you for your participation in this survey. You are eligible to win a $50 gift card from Amazon.com. If you'd like to participate in the draw, please leave your email address below.
Q20: Would you be willing to be contacted for a follow-up interview via Skype / Hangout?
We'll contact you to make an appointment at your convenience.
Clear selection
Q21: Do you have any further comments for us?
Submit
Clear form
Never submit passwords through Google Forms.
This content is neither created nor endorsed by Google. - Terms of Service - Privacy Policy

Does this form look suspicious? Report