# Exception Notification

1. By default, Pushlink catches all unhandled exceptions in your app and doesn't block the natural life cycle of exceptions.
2. You can also send handled exceptions calling: `PushLink.sendAsyncException()`.
3. Pushlink always sends the exceptions asynchronously and guarantees its delivery.
4. If you also want to get the last 100 LogCat's lines, just add `android.permission.READ_LOGS` in AndroidManifest.xml

## Sending Limit

* Limits include handled and unhandled exceptions.
* PushLink was not designed to be a remote log system. Try not sending network issues or something like that.
* Each app has its sending limit.
* It's calculated using the last 24H, and it isn't cumulative.
* Formula: `sendingLimit == planQuantity * 2`
* Ex1: free plan (5 installations) can send 10 exceptions in the last 24H for each app.
* Ex2: 200 installations can send 400 exceptions in the last 24H for each app.

## Status

The messages you are going to see in the Android log system:

* REGISTERED
  * Exception sent.
* QUEUED
  * Exception not sent but queued due to: java.lang.Exception: Any reason.
* LOST
  * Exception sent but rejected: Invalid API Key. Probably caused by the wrong configuration.
  * Exception sent but rejected: Invalid Package. You probably never uploaded this app.
  * Exception sent but rejected: Invalid APK Hash. Probably you are in a development environment. You did not upload this version yet.
  * Exception sent but rejected: The application \[app name] has exceeded the 24H sending limit.

```java
//When sending exception manually, PushLink doesn't print it in logcat. You have to print it by yourself. 
try {
  ...
} catch (Throwable t) {
  Log.e("MyApp", "Some", t);
  PushLink.sendAsyncException(t);
  //or
  Map<String, String> moreInfo = ... 
  PushLink.sendAsyncException(t, moreInfo);
}
...
//You can also disable the automatic exception catch/send
PushLink.disableExceptionNotification();
...
//To receive LogCat last ones 100 lines just add <uses-permission android:name="android.permission.READ_LOGS" />
```
