Comments (7)
We need to fix the code generator to reject this. The currently-supported solution is to put a try/catch
in your @Provides
-annotated method. This is lame, I agree, but it's very transparent.
from dagger.
Now, you can still have this blow up your app, if you throw a RuntimeException from the catch block...
from dagger.
Indeed. This is the universal danger of provides methods. They do
things at run time that are hard to analyse at compile time. We can
only show your wiring to be structurally valid. We cannot prove you
will have no errors at run time.
from dagger.
I mean, it is ok to have Runtime failures like these. My app needs a XmlPullParser to work. I was just suggesting that Dagger doesn't have to interfere with the developer here. But you already know that :)
from dagger.
Should we reject this, or wrap this in a try/catch block and run-time exception in the generated code. It is boiler plate, so it's reasonable to generate, and the try/catch code will be clear within the generated code, just as readable.
Heck, we could even generate run-time exceptions for checked exceptions that wrap them.
Then again, doing so would pretty much pervert the whole approach of checked-exceptions. Whether you're for or against that is sort of a matter of religion.
from dagger.
IMHO, to avoid perversion ("why is this freaking framework throwing something different here?") and avoid a catch (Exception everything) block, which is always bad, you should reject it.
from dagger.
Yeah - I think I agree. Just wanted to put it out for consideration.
from dagger.
Related Issues (20)
- java.lang.NoClassDefFoundError: dagger.internal.Preconditions HOT 2
- java.lang.NoClassDefFoundError: dagger.internal.Preconditions HOT 1
- android.app.Application does not implement dagger.android.HasActivityInjector HOT 3
- --
- Android Context HOT 1
- Subcomponent inside subcomponent HOT 1
- Error when a component is trying to include bindings with different scopes could be more informative HOT 1
- Constructor injection cannot find symbol method inject members dagger2 2.14 HOT 1
- how can i run the example of CoffeeApp.java HOT 1
- Why do Singletons need an empty default constructor? HOT 2
- dagger-compiler
- dagger.android.DispatchingAndroidInjector cannot be provided without an @Provides HOT 1
- 每次修改完java代码都需要clean项目 才能运行, HOT 1
- did u consider this kind of case: ChildFragment needs to reuse ParentFragment's object instead of creating a new one。hilt may not support this kind of case
- duplicate Nullable HOT 2
- cannot generate
- Support extending base builder classes HOT 2
- The Hilt Android Gradle plugin is applied but no com.google.dagger:hilt-android dependency was found. HOT 1
- Issue with enableAggregatingTask flag / AGP 7.0 / oss-licenses HOT 1
- after add hilt { enableAggregatingTask = true } dependencies tasks faild
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from dagger.