 		testRecyclingCenter.registerInitHandler({ (context: Any?) -> RecyclableMaterial in
 			return input
 			}, forReuseIdentifier: input.identifier)
-		let output = testRecyclingCenter.dequeueObjectWithReuseIdentifier(input.identifier)
-		XCTAssert(input == output)
+		do {
+			let output = try testRecyclingCenter.dequeueObjectWithReuseIdentifier(input.identifier)
+			XCTAssert(input == output)
+		}
+		catch let error {
+			XCTFail("\(error)")
+		}
 	}
 
 	// A registered initHandler should initialize objects based on the dequeue context.

		testRecyclingCenter.registerInitHandler({ (context: Any?) -> RecyclableMaterial in
			return initHandlerResponse
			}, forReuseIdentifier: input.identifier)
		testRecyclingCenter.enqueueObject(input, withReuseIdentifier: input.identifier)
		let results = [
			testRecyclingCenter.dequeueObjectWithReuseIdentifier(input.identifier),
			testRecyclingCenter.dequeueObjectWithReuseIdentifier(input.identifier),
			testRecyclingCenter.dequeueObjectWithReuseIdentifier(input.identifier)
		]
		let expectations = [
			input,
			initHandlerResponse,
			initHandlerResponse
		]
		for (result, expectation) in zip(results, expectations) {
			XCTAssert(result == expectation)
		}
	}
}

		testRecyclingCenter.registerInitHandler({ (context: Any?) -> RecyclableMaterial in
			return input
			}, forReuseIdentifier: input.identifier)
		do {
			let results = [
				try testRecyclingCenter.dequeueObjectWithReuseIdentifier(input.identifier),
				try testRecyclingCenter.dequeueObjectWithReuseIdentifier(input.identifier),
				try testRecyclingCenter.dequeueObjectWithReuseIdentifier(input.identifier)
			]
			for object in results {
				XCTAssert(input == object)
			}
		}
		catch let error {
			XCTFail("\(error)")
		}
	}

	/// An initHandler must be registered for a reuse identifier before an object may be dequeued.
	func testPrematureDInitHandlerDequeueFailure() {
		do {
			let _ = try testRecyclingCenter.dequeueObjectWithReuseIdentifier(ReuseIdentifier.Unknown.rawValue)
			XCTFail()
		}
		catch let error {
			guard let recyclingError = error as? RecyclingCenterError else {
				XCTFail("\(error)")
				return
			}

			switch recyclingError {
			case .UnknownReuseIdentifier(reuseIdentifier: let reuseIdentifier):
				XCTAssert(reuseIdentifier == ReuseIdentifier.Unknown.rawValue)
			default:
				XCTFail("\(error)")
			}
		}
	}

	/// An enqueued object should be dequeueable.
