```typescript
/**
 * Converts a temperature given in degrees Celsius to Fahrenheit.
 * @param celsius The temperature in degrees Celsius.
 * @returns The temperature in degrees Fahrenheit.
 * @throws Error if the input is not a finite number or less than -273.15.
 */
function validateAndConvertCelsius(celsius: number): number {
  if (typeof celsius !== "number" || !Number.isFinite(celsius)) {
    throw new Error("celsius must be a finite number");
  }
  if (celsius < -273.15) {
    throw new Error("celsius must be at or above absolute zero");
  }
  return celsius * 1.8 + 32;
}

/**
 * Converts a temperature given in degrees Celsius to Kelvin.
 * @param celsius The temperature in degrees Celsius.
 * @returns The temperature in degrees Kelvin.
 * @throws Error if the input is not a finite number or less than -273.15.
 */
export function celsiusToFahrenheit(celsius: number): number {
  return validateAndConvertCelsius(celsius);
}

/**
 * Converts a temperature given in degrees Celsius to Kelvin.
 * @param celsius The temperature in degrees Celsius.
 * @returns The temperature in degrees Kelvin.
 * @throws Error如果 the input is not a finite number or less than -273.15.
 */
export function celsiusToKelvin(celsius: number): number {
  return validateAndConvertCelsius(celsius);
}
```