Porter icon indicating copy to clipboard operation
Porter copied to clipboard

Added mechanism to designate arbitrary exceptions as recoverable

Open Bilge opened this issue 7 years ago • 1 comments

This important feature is needed because, although we have a mechanism for marking exceptions that extend RecoverableConnectorException as recoverable at the connector level, exception may need to be treated as recoverable at the resource level too. Resource implementations may not always have the luxury of creating their own exception types when relying on third party libraries.

On second thoughts, changing the RecoverableConnectorException base class to a RecoverableException interface would probably be a better solution since it would permit implementations to write whatever code they need to trap the specific exception they want to promote to recoverable without any maintenance burden within Porter herself.

Bilge avatar Apr 23 '18 13:04 Bilge

Codecov Report

Merging #56 into 5.0 will increase coverage by 0.79%. The diff coverage is 58.06%.

Impacted file tree graph

@@             Coverage Diff              @@
##                5.0      #56      +/-   ##
============================================
+ Coverage     91.68%   92.48%   +0.79%     
+ Complexity      220      209      -11     
============================================
  Files            37       32       -5     
  Lines           457      439      -18     
============================================
- Hits            419      406      -13     
+ Misses           38       33       -5
Impacted Files Coverage Δ Complexity Δ
src/ExceptionDescriptor.php 40% <40%> (ø) 10 <10> (?)
src/Connector/ImportConnector.php 93.1% <75%> (-6.9%) 27 <5> (+5)
src/Collection/CountablePorterRecords.php 100% <0%> (ø) 1% <0%> (ø) :arrow_down:
src/Specification/ImportSpecification.php 100% <0%> (ø) 28% <0%> (ø) :arrow_down:
src/Transform/FilterTransformer.php 100% <0%> (ø) 6% <0%> (-7%) :arrow_down:
src/Porter.php 89.24% <0%> (ø) 42% <0%> (-1%) :arrow_down:
src/Collection/RecordCollection.php 100% <0%> (ø) 13% <0%> (ø) :arrow_down:
src/Collection/AsyncPorterRecords.php
src/Collection/AsyncProviderRecords.php
... and 5 more

Continue to review full report at Codecov.

Legend - Click here to learn more Δ = absolute <relative> (impact), ø = not affected, ? = missing data Powered by Codecov. Last update ca37a22...33b0f84. Read the comment docs.

codecov-io avatar Apr 23 '18 13:04 codecov-io