Question: I have resently begun to develop Android apps, and I do not know how to deploy simple HelloWorld app on my Android device. When I click the **Run** button, my device ***is not shown*** in the list of running devices.

P.S.: I am using Android Studio.

Answer: 
I'd suggest a third option: **Put error logging and error display in the UI layer.** 

Register a [central error handler](https://stackoverflow.com/q/4692392/87698) in your user interface. There, you can

* display the error (either a simple MessageBox or a fancy window with a "more details" and a "report to developers" button) and
* log everything,

without having to clutter *every* BL method with catch-all try-catch clauses.

This has a lot of advantages:

* It will make your BL code easier to read.
* You cannot *forget* a BL method.
* It's easier to make (centralized) changes to your error handling code.
* You do not couple your business logic to a particular type of user interface, which has a lot of advantages on its own: For example, you can reuse it in a web-based project later, and you can test your business logic with *unit tests*.
First of all : Always catch **only** exceptions you can handle ([See Eric Lippert Post](http://ericlippert.com/2008/09/10/vexing-exceptions/))  

You can follow this strategy :

* If you cannot recover from the exception do it in the DAL layer only and log it.
* `try {} catch{}` in BAL layer if the user can handle it.